需要从列表中的SQL中选择

时间:2016-05-29 06:42:31

标签: sql

我有一个SQL表,我需要选择所有记录,其中用户名(MM_Session)位于列表中的另一个用户(用户SQL表,后面的列)中,这看起来像这样

username1 username2 username3 username4

到目前为止,我的SQL查询如下所示:

SELECT *
FROM Users
WHERE Users.Following_By LIKE '" . $_SESSION['MM_Username'] . "'

除非用户的用户名在列表后面的其他用户中,否则似乎不会返回任何值。

我应该使用'IN'代替'LIKE'吗?

有没有人有任何其他想法,为什么这不起作用?

由于

1 个答案:

答案 0 :(得分:2)

如果您不在查询字符串中使用通配符,则LIKE运算符与=的运算符相同。将它们放在单词的前后,以匹配单词的任何出现:

SELECT *
 FROM Users
 WHERE Users.Following_By LIKE '%" . $_SESSION['MM_Username'] . "%'

虽然如果foobar仅包含MM_USERname,您可能会获得比预期更多的用户,因为它匹配例如foo。您可以使用显式分隔符来防止这种情况。或者,更好的是,为列表条目使用单独的表,并使用外键将其加入Users表。