SQL中or關鍵字

SQL中or關鍵字

背景

同事測試時反應彙總的數據比庫里正常的數據多了很多。
正常只有432條,但彙總出了近五百條數據。錯誤SQL

原因

  • 查看了下彙總出的數據,發現有很多都重複了,但是按理來說用框架查出來的不會有重複,所以覺得可能是自己sql寫的有問題。查詢了相關資料後確定是sql中or關鍵字的問題。

解決過程

sql = "SELECT 
                * 
            FROM 
                Rm_Agenda_Group t
            WHERE
                t.dealer_Num = '4' or t.group_Code = '1048'
            AND
                t.user_id = 'super'
                ";

上圖SQL的語法相當於下面兩條SQL之和

 sql =" SELECT * FROM Rm_Agenda_Group t WHERE t.dealer_Num = '4' ";
 sql =" SELECT * FROM Rm_Agenda_Group t WHERE t.group_Code = '1048' AND t.user_id = 'super' ";
 (這樣執行下來,第一條sql就少了user_id這個條件的限制!)

解決方法: or關鍵字兩邊的條件一定要加括號,這樣執行時纔會被視爲一個整體條件。
在這裏插入圖片描述
查出432條數據,正確!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章