ผมสร้างตาราง administrator มาตัวหนึ่ง มีฟิลด์หนึ่ง ชื่อ active ผมให้เก็บค่า 1 (active) กับค่า null (non-active) ปกติแล้วผมสนใจแต่คนที่ active อยู่เท่านั้น ปัญหาเลยไม่เจอ มาเมื่อไม่กี่วันนี้เอง อยากรู้รายชื่อของคนที่ non-active อยู่ ผมใช้คำสั่งนี้เลย
SELECT * FROM tbl_administrator WHERE active = NULL |
ผลลัพธ์ ไม่เจออะไรเลย ทั้งที่ผมเปิดดูด้วย phpmyadmin มันมีหลายคนที่ ฟิลด์ active เป็น null เอาแล้วไง ผมก็เลยมั่วต่อ
SELECT * FROM tbl_administrator WHERE active <> 1 |
SELECT * FROM tbl_administrator WHERE active < 1 |
ก็ไม่มี อะไรของมัน จนสุดท้ายต้องพึ่ง google จนได้คำตอบว่า ไอ้ที่มั่วไปน่ะ มันไม่ถูกต้อง ถ้าคุณจะหาฟิลด์ที่เก็บค่า null ไว้ ต้องใช้คำสั่งอย่างนี้
SELECT * FROM tbl_administrator WHERE active IS NULL |
เท่านั้นแหละ ได้ผลลัพธ์ตามที่ต้องการเลย ท่านๆที่ได้อ่านบทความนี้ ขอร้อง อย่าโง่แบบผมนะ จำไว้ IS NULL
อ่านเพิ่มเติม : Working with NULL Values
nightmare says:
05/08/2552 at 05/08/2552
เคยโง่มาอยู่รอบนึงเหมือนกันครับ เอิ๊กๆ แต่ผมลองหาจาก
refman-4.1-en.chm ที่เป็น manual ของ SQL เลยหายโง่ได้ อิอิ
administrator says:
05/08/2552 at 05/08/2552
โชคดีที่ยังมีเพื่อน นะผม
root says:
05/10/2552 at 05/10/2552
กำลัง โง่ อยู่พอดีเลยพี่ กว่าจะเจอ
ขอบคุณสำหรับบทความดีๆ ครับพี่
ohh025 says:
14/10/2552 at 14/10/2552
ฮ่า…ผิดเป็นครู ขอบคุณสำหรับบทความดีๆ (T-T) กะลังโง่อยู่เหมือนกัน
cillout says:
09/12/2552 at 09/12/2552
เข้าใจกับคำว่า ผิดเป็นครูก็คราวนี้แหละ ผมก็โง่มานานเหมือนกัน
Mr.Taxi-คัทเตอร์ says:
04/01/2556 at 04/01/2556
IS NOT NULL , IS NULL
ปรกติ Default ค่า Value จะเป็น NULL
กรณีนี้ ต้องใช้ IS NULL กรณี ถ้าต้องตรวจค่า….เพราะ ค่า NULL ไม่ใช่ค่าว่าง..
หากสงสัย
http://dev.mysql.com/doc/refman/5.0/en/working-with-null.html