我想知道这在sql中几乎是可能的(使用php作为服务器端),其中你有一个值数组(数字),你尝试根据该数组中的值检索数据。
我有一个sql表:
posts(
id int(11) primary key,
posts varchar(140),
user_id int(11) foreign key
);
我现在写一个查询来检索'帖子':
$query="SELECT * FROM posts WHERE user_id=(**Array of select user_id's**)";
是否有任何sql内置函数来检查数组中的值?或者我应该使用PHP吗?
我实际上正在尝试实施Twitter模型,以显示我们关注的人的帖子。
答案 0 :(得分:13)
SQL无法解析PHP数组。试试这个:
$query="SELECT * FROM posts WHERE user_id IN ({implode(',', $userIDarray)})";
答案 1 :(得分:12)
是的,这很容易实现。您需要查看MySQL's IN function
您的查询将类似
SELECT * FROM posts WHERE user_id IN (1,2,3,4,5,6)
您可以使用implode()
在PHP中的括号之间构建位答案 2 :(得分:2)
查看此页面:WHERE ... IN。您可以使用IN运算符检查值列表中是否存在某个值。
答案 3 :(得分:1)
是的,你必须使用以下语法
SELECT 'value'
IN (array)