繁体   English   中英

如何修复 sql 查询?

[英]how to fix sql query?

在这个 noti_card_data 我的数据库模式中

  id      | date  |        cmd  |     mbrNo
--------------------------------------------
  1        2020-04-01      success    1
  2        2020-04-29      fail       -

我要结果

  id      | date  |        cmd  |     mbrNo
--------------------------------------------
  1        2020-04-01      success    1

但是,发送这样的查询结果。

SELECT * FROM noti_card_data WHERE mbrNo = '1'  OR mbrNo = '-'  AND cmd ='success' 



 id      | date  |        cmd  |     mbrNo
--------------------------------------------
  1        2020-04-01      success    1
  2        2020-04-29      fail       -

如何修复我的查询?

尝试以下操作,这是演示

SELECT * 
FROM noti_card_data 
WHERE (mbrNo = '1'
OR mbrNo = '-')
AND cmd ='success'

Output:

| id  | date       | cmd     | mbrNo |
| --- | ---------- | ------- | ----- |
| 1   | 2020-04-01 | success | 1     |

代替

mbrNo = '1'  OR mbrNo = '-'

你可以说

mbrNo IN ('1', '-')

尽管这两个表达式是相同的,但更改会巧合地解决您的问题。

真正的“问题”是

a OR b AND c   means   a OR (b AND c)

但你想要

                       (a OR b) AND c

请参阅“运算符的优先级”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM