Home  >  Article  >  Backend Development  >  php查询sql取值再查询问题

php查询sql取值再查询问题

WBOY
WBOYOriginal
2016-06-20 12:33:20956browse

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  大家好 

<?php $arr="你好,我好,大家好";$array=explode(',',$arr);print_r($array);echo "<br>";for($i=1;$i<=sizeof($array);$i++){	$array[$i-1]='\''.$array[$i-1].'\'';}print_r($array);echo "<br>";$array=implode(',',$array);$str = "select * from 表B where titile in ($array);";echo $str;?>


运行结果为
Array ( [0] => 你好 [1] => 我好 [2] => 大家好 )
Array ( [0] => '你好' [1] => '我好' [2] => '大家好' )
select * from 表B where titile in ('你好','我好','大家好');

昨晚上说错了,用explode,,希望能帮到您

$arr="你好,我好,大家好";$array=explode(',',$arr);print_r($array);echo "<br>";for($i=1;$i<=sizeof($array);$i++){	$array[$i-1]='\''.$array[$i-1].'\'';}print_r($array);echo "<br>";$array=implode(',',$array);echo $array;echo "<br>";$str = "select * from 表B where titile in ($array);";echo $str;


分隔字符串是explode,合并数组是implode,分隔之后,每一位的两边加上引号,然后在重新合并回来。

运行结果为
Array ( [0] => 你好 [1] => 我好 [2] => 大家好 )
Array ( [0] => '你好' [1] => '我好' [2] => '大家好' )
'你好','我好','大家好'
select * from 表B where titile in ('你好','我好','大家好');

不知道是不是满足你的要求,嘿嘿

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn