当我使用带有和关键字的多个相似条件时,它实际上会返回false值,它在表中有值,我的查询如下所示:
SELECT * FROM tbl_student
WHERE name LIKE '%jame%'
AND ( id LIKE '%001%'
AND id2 LIKE '%002%'
)此查询返回空行。
SELECT * FROM tbl_student
WHERE name LIKE '%jame%'
OR ( id LIKE '%001%'
AND id2 LIKE '%002%'
)此查询返回数据。
tbl_student
Name ID ID2
jame 233 3234
jame333 1001 0222
jame333 Da 1001 1002为什么在使用和关键字时返回空数据?
发布于 2015-02-22 17:30:55
使用AND运算符的查询不会返回所需的数据,因为放在括号中的条件总是计算为false。
之所以出现这种情况,是因为您试图在整数上使用LIKE '%str%'。这并不是预期的结果。如果坚持使用LIKE,则可能需要将整数CAST为字符串:
SELECT *
FROM tbl_student
WHERE name LIKE '%jame%'
AND (CAST(id AS CHAR) LIKE '%001%' AND
CAST(id2 AS CHAR) LIKE '%002%');FYI,一个e1 AND (e2 AND e3)逻辑表达式保持不变的,省略括号。
https://stackoverflow.com/questions/28655546
复制相似问题