我有一个像这样的mysql表users
:
id username following
15 one ,13,14,16,17,
14 two ,76,43,13,
13 three null
现在三人有0名跟随者和2名粉丝。
我想要一个查询来检查在下一行中有,13,
的所有用户
这样的事情:
$query = mysql_query('SELECT * FROM users WHERE following has ",13,"');
但是有效。
我可以选择每个用户的以下所有内容并执行此操作:
if (strpos($result_from_query,',13,') !== false) {
echo $fetch['username'];
}
答案 0 :(得分:1)
如果IN
列中的值是数组,我会使用following
获得更大的灵活性。
SELECT *
FROM `users`
WHERE `following` IN(13)
答案 1 :(得分:1)
您是否尝试过使用LIKE?
$query = mysql_query('SELECT * FROM users WHERE following LIKE "%,13,%"');
,13,
字符串之前和之后的%字符充当允许任何字符存在的通配符,因此将在字符串中的任何位置找到13。
另外,@ Jay Blanchard建议使用IN运算符(in his answer)
答案 2 :(得分:0)
假设数字总是有逗号和尾随逗号,您可以使用:
$query = mysql_query('SELECT * FROM users WHERE following LIKE "%,13,%"');
请阅读LIKE声明以获取更多信息