背景
同事測試時反應彙總的數據比庫里正常的數據多了很多。
正常只有432條,但彙總出了近五百條數據。
原因
- 查看了下彙總出的數據,發現有很多都重複了,但是按理來說用框架查出來的不會有重複,所以覺得可能是自己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條數據,正確!