0

查询看起来像:

SELECT username, email FROM users WHERE username LIKE '%bla%' || '%bla2%' || '%bla3%' AND     last_visit > '2013-05-15 00:00:00'");

该查询仅获取包含“bla”或“bla2”的记录,跳过 bla3。

怎么来的?

4

2 回答 2

2

您正在对字符串执行逻辑 OR,这不是您想要的。

你需要这样写:

SELECT username, email FROM users WHERE (username LIKE '%bla%' or username like '%bla2%' or username like '%bla3%') AND last_visit > '2013-05-15 00:00:00'";

编辑:更新以在 Goat CO 的答案中包含更正

于 2013-09-08T01:32:55.657 回答
2

如果您打算申请last_visit > '2013-05-15 00:00:00'"所有记录,则需要括号:

SELECT username, email 
FROM users 
WHERE (username LIKE '%bla%' or username like '%bla2%' or username like '%bla3%') 
       AND last_visit > '2013-05-15 00:00:00'";

如果您使用:

SELECT username, email 
FROM users 
WHERE username LIKE '%bla%' or username like '%bla2%' or username like '%bla3%'
       AND last_visit > '2013-05-15 00:00:00'";

它将返回所有记录,如“bla”或“bla2”,但在“2013-05-15”之后只返回“bla3”。

于 2013-09-08T02:01:31.440 回答