b表
id title
1 你好
2 我好
3 大家好
$arr =你好,我好,大家好;中间是逗号隔开
然后我想通过$arr的值 查询b表 对应的title的id
怎么写查询?
效果大概是这样:
$arr =你好,我好,大家好;
select * from b表 where title=$arr
输出结果为:
你好我的id为1
我好我的id为2
大家好我的id为3
回复讨论(解决方案) 将$arr =你好,我好,大家好;用 $array=implode(',',$arr);函数按逗号分隔开,然后放进一个数组中比如$array.
然后select * from b表 where title in ($array);
然后用foreach遍历,按格式取出结果就可以了
缺少引号怎么弄呢?select * from b表 where title in ($array); 应该是in ('你好','我好','大家好'),现在是(你好,我好,大家好)
create temporary table t select 1 as id, '你好' as title union select 2, '我好' union select 3, '大家好';select * from t where find_in_set(title, '我好,你好,大家好')
id title 1 你好 2 我好 3 大家好
还可以排序 select * from t where find_in_set(title, '我好,你好,大家好') order by find_in_set(title, '我好,你好,大家好');
id title 2 我好 1 你好 3 大家好
你好 [1] => 我好 [2] => 大家好 )
array ( [0] => '你好' [1] => '我好' [2] => '大家好' )
select * from 表b where titile in ('你好','我好','大家好');
昨晚上说错了,用explode,,希望能帮到您
$arr=你好,我好,大家好;$array=explode(',',$arr);print_r($array);echo
;for($i=1;$i 你好 [1] => 我好 [2] => 大家好 )
array ( [0] => '你好' [1] => '我好' [2] => '大家好' )
'你好','我好','大家好'
select * from 表b where titile in ('你好','我好','大家好');
不知道是不是满足你的要求,嘿嘿