求助:mysql查询GET传的值中包含数据库某字段的所有值,详情请看补充说明。

如:表table
id title
1 你好
2 再见
3 谢谢
4 老师

GET传的值a为"老师,你好"

通过select 查询出的记录为
id title
1 你好
4 老师

我之前用的笨方法是【我用的是PHP】
循环 table {
if (strstr(a,title)){
echo

}
}

但是这样数据量大的话,查询速度会变慢,想通过select直接匹配出1、4的记录,然后在循环取值,效率会提高。

先把GET传过来的数据用逗号分割成字符串并赋给数组,$str=explode("," , "$GET[变量]");
然后字查询的时候循环一下就行了
for($i=0; $i<count($str); $i++){

select * $table where id in($str[i]);
}
这个代码重点是,in (str[i]);
加入调试一下吧追问

您的方法很好,适用于get传由逗号分隔的值(此值小于等于数据库title)。可能我举得例子有欠妥,如果是“老师你好啊”,用您的方法可能就不行了。因为根本无法分隔,也就没法用数组了。
请问,如果是“老师你好啊”,怎么查询出结果呢?

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-07
如果参数是用英文逗号分割可以使用集合查找函数完成
select * from tableName where FIND_IN_SET(title,查询字符串) > 0;
第2个回答  2013-10-06
select id,title from 表名 where id in(1,4);

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网