我需要一个MySQL查询来搜索数据库中包含$friend_array
变量中包含用户名的任何行。
例如,如果是这种情况:
$friend_array = "ksk,google,bob,steve,dunno,anotheruser";
'帖子'用户名为bob
的数据库,那么我想要一个查询来选择它。
此外,如果它可以从友元数组中选择包含用户的所有行,例如,如果在帖子中有行?数据库与来自同一数组的用户(例如,有一行ksk
而另一行有steve
),那么我希望它们都在查询中被选中。
提前致谢
答案 0 :(得分:0)
您想使用WHERE IN语句。
SELECT *
FROM Posts
WHERE user_name IN ("ksk", "google", "bob", "steve", "dunno", "anotheruser");
答案 1 :(得分:0)
使用IN子句获得结果:
Select * from `tableName`
Where userName IN ("ksk","google","bob","steve",...)
答案 2 :(得分:0)
喜欢这个
"SELECT *
FROM Posts
WHERE user_name IN (".implode(',', array_map(function ($value) { return "'".$value."'"; }, explode(',', $friend_array))).");"
答案 3 :(得分:0)
从$friend_array
是一个字符串开始,在你的例子中。
让我们的代码:
<?php
/* if $friend_array is a string starts from here*/
$friend_array = "ksk,google,bob,steve,dunno,anotheruser"; // your string
$friend_array = explode(',', $friend_array); // transform it to array
/* if $friend_array is an array starts from here */
//Now prepare a String for SQL IN operator
$friend_array = implode(', ',array_map(function($a){return "'" . $a . "'";}, $friend_array));
//the SQL
$sql = "select * from Posts where user_name in ($friend_array)";
?>