我有這樣的一個表:Mysql的選擇IN返回NULL如果ID不存在
+----+---------+---------+
| Id | column1 | column2 |
+----+---------+---------+
| 1 | a | b |
| 2 | a | b |
+----+---------+---------+
像這樣SELECT * FROM table WHERE id IN (1,2,3)
做我需要得到這樣的結果(我需要什麼樣的查詢查詢讓空值nonexisten的id):
+----+---------+---------+
| Id | column1 | column2 |
+----+---------+---------+
| 1 | a | b |
| 2 | a | b |
| 3 | null | null |
+----+---------+---------+
編輯
感謝迄今爲止的迴應。
是否有更多'動態的方式來做到這一點,上面的查詢只是一個例子。 在現實中,我需要檢查1000左右的ID!
爲什麼不創建一個帶有你想要的id值的臨時表,它們離開外部連接真正的表到臨時表? –
@NuclearGhost:不需要創建臨時表;在查詢文本中使用內聯視圖是一種更簡單的方法。如果有很多id值,並且語句超出(或接近)SQL語句的最大長度(= max_allowed_packet_size) – spencer7593
,但是您在哪裏獲得這些1000個ID,臨時表將是一個適當的解決方法?如果你從一個查詢中得到它們,你仍然可以在我的答案中使用一個LEFT JOIN來得到你想要的結果... – fthiella