我發現了一個奇怪的方式,如何做一些MySQL。有人請解釋爲什麼會發生。
我從表A中選擇所有列,並從表B中以某種條件連接,這可能會或可能不會滿足每個表的行。
現在在連接之後,在WHERE語句中,我想完全省略具有表B的列categoryId值爲14的行(不是連接部分,而是整行)如果存在表B的結果(如果存在n我不希望這一行被保留)。
所以我在哪裏做WHERE tableB.categoryId != 14
。沒有結果(當時應該是)。爲了好奇,我試圖將操作符重寫爲=,所以WHERE tableB.categoryId = 14
,結果是我想要的結果我沒有得到,而且我不想讓我得到的結果。
我不明白這一點,這很奇怪。
不應該不等於事情有效嗎?
我也試過!(tableB.categoryId = 14
),但也沒有結果。最後,我嘗試了WHERE IF(tableB.categoryId = 14, 0, 1)
,這確實有用。爲什麼這樣做,爲什麼不是不平等和否定經營者的工作?MySQL在刪除行後左加入
0
A
回答
5
你需要WHERE tableB.categoryId IS NULL OR tableB.categoryId != 14
+0
將一個數字(any)與NULL比較總是很棘手,所以當你需要解決這種可能性時,你需要明確地指定NULL值 – poncha
0
我認爲你的問題無關,與左聯接。
對於調試,你應該嘗試一個更簡單的查詢而不用左連接。 只是SELECT * FROM tableB WHERE categoryId = 14
另外檢查類型的類別ID,問題可能是從int到字符串隱式轉換,不能在所有上下文中工作,所以他們更好地明確。
相關問題
- 1. mysql左加入回聲最後一行
- 2. MySQL加入刪除
- 3. mysql刪除加入?
- 4. MySQL左加入多行
- 5. Mysql-左加入
- 6. MySQL左加入?
- 7. MySQL左加入
- 8. MySQL左加入
- 9. MySQL刪除加入錯誤
- 10. MYSQL - 刪除加入查詢
- 11. MySQL的刪除與加入
- 12. MySQL加入,左加入
- 13. 從左加入刪除詳細信息
- 14. 加入RDD後刪除parentesis
- 15. MySql左加入COUNT
- 16. 左加入rails/mysql
- 17. MySQL行在刪除後沒有更新
- 18. MySQL - 在特定ID值後刪除行。
- 19. MySQL在左刪除重複使用ID
- 20. mysql刪除然後插入。不爲AI表插入刪除行!爲什麼?
- 21. 刪除按鈕正在刪除Mysql中的最後一個插入的行
- 22. MySQL在左邊外部加入重複行加入
- 23. 如何在mysql中插入觸發器後刪除行?
- 24. MySQL在超時後刪除
- 25. MySql在列後刪除;
- 26. 追加然後刪除但不刪除最後輸入的文本或行
- 27. mysql-插入後從表中刪除
- 28. 刪除後PHP MySQL插入失敗
- 29. MySQL的刪除插入後選擇
- 30. 刪除MySQL行
[段落是你的朋友](http://en.wikipedia.org/wiki/Paragraph) –
對不起,下次我會關注的。 –