【问题标题】:Need to select from SQL where in a list需要从 SQL where in a list 中选择
【发布时间】:2016-09-27 04:23:50
【问题描述】:

我有一个 SQL 表,我需要选择用户名 (MM_Session) 在另一个用户关注列表(用户 SQL 表,以下列)中的所有记录,如下所示

用户名1 用户名2 用户名3 用户名4

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

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

除了似乎没有返回任何值,即使用户的用户名在其他用户列表中。

我应该使用“IN”而不是“LIKE”吗?

有没有人知道为什么这不起作用?

谢谢

【问题讨论】:

  • 您使用的是哪个 DBMS?那是什么编程语言?

标签: sql


【解决方案1】:

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

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

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

【讨论】:

  • 谢谢。我真的不知道为什么我以前没有想到这一点。这是一个显而易见的答案。
  • 是的,我之前确实尝试过,但它说我必须等待 10 分钟。现在已经完成了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-01
  • 1970-01-01
  • 2011-08-16
  • 2011-05-06
  • 2021-09-14
  • 2013-09-17
  • 1970-01-01
相关资源
最近更新 更多