检查一个单词是否存在mysql行(php)

时间:2015-04-10 12:37:40

标签: php mysql

我有一个像这样的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'];
}

3 个答案:

答案 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声明以获取更多信息