首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql中的多类条件

问mysql中的多类条件
EN

Stack Overflow用户
提问于 2015-02-22 07:27:18
回答 1查看 76关注 0票数 0

当我使用带有和关键字的多个相似条件时,它实际上会返回false值,它在表中有值,我的查询如下所示:

代码语言:javascript
复制
  SELECT * FROM tbl_student 
  WHERE name LIKE '%jame%' 
  AND ( id LIKE '%001%' 
        AND id2 LIKE '%002%'
       )

此查询返回空行。

代码语言:javascript
复制
SELECT * FROM tbl_student 
WHERE name LIKE '%jame%' 
OR ( id LIKE '%001%' 
     AND id2 LIKE '%002%'
   )

此查询返回数据。

代码语言:javascript
复制
tbl_student
Name         ID      ID2
jame          233     3234 
jame333       1001    0222
jame333 Da    1001    1002

为什么在使用和关键字时返回空数据?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-22 17:30:55

使用AND运算符的查询不会返回所需的数据,因为放在括号中的条件总是计算为false。

之所以出现这种情况,是因为您试图在整数上使用LIKE '%str%'。这并不是预期的结果。如果坚持使用LIKE,则可能需要将整数CAST为字符串:

代码语言:javascript
复制
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)逻辑表达式保持不变的,省略括号。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28655546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档