簡體   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