当我使用带有AND关键字的多个like条件时,它实际上将返回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
使用AND关键字时为什么返回空数据?
答案 0 :(得分:2)
使用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%');
仅供参考,e1 AND (e2 AND e3)
逻辑表达式仍为相同,省略括号。