Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

MySQL ใช้ IN() กับค่าเดี่ยว (Single Value) ได้หรือไม่?

ได้ครับ MySQL อนุญาตให้ใช้ IN() กับค่าเพียงค่าเดียว ทำงานเหมือนกับการใช้ = ทุกประการ

ตัวอย่างการใช้งาน

1. สร้างตารางทดสอบ

mysql> CREATE TABLE DemoTable (
    FirstName VARCHAR(20)
);
Query OK, 0 rows affected (0.65 sec)

2. เพิ่มข้อมูลทดสอบ

mysql> INSERT INTO DemoTable VALUES('Chris');
Query OK, 1 row affected (0.42 sec)
mysql> INSERT INTO DemoTable VALUES('David');
Query OK, 1 row affected (0.14 sec)
mysql> INSERT INTO DemoTable VALUES('Mike');
Query OK, 1 row affected (0.10 sec)
mysql> INSERT INTO DemoTable VALUES('Bob');
Query OK, 1 row affected (0.08 sec)

3. แสดงข้อมูลทั้งหมด

mysql> SELECT * FROM DemoTable;
+-----------+
| FirstName |
+-----------+
| Chris     |
| David     |
| Mike      |
| Bob       |
+-----------+

4. ใช้ IN() กับค่าเดี่ยว

mysql> SELECT * FROM DemoTable WHERE FirstName IN('Mike');

5. ผลลัพธ์

+-----------+
| FirstName |
+-----------+
| Mike      |
+-----------+

เปรียบเทียบ IN() กับ =

คำสั่งผลลัพธ์เหมาะสำหรับ
WHERE col IN ('value')เท่ากับ WHERE col = 'value'โค้ดที่สร้างไดนามิก (Dynamic SQL) อาจส่งค่าเดี่ยวหรือหลายค่าได้
WHERE col IN ('val1','val2')ค้นหาหลายค่าค้นหาหลายค่าคงที่

ข้อดีของการใช้ IN() แบบค่าเดี่ยว

  • เขียนโค้ดสำเร็จรูป (Prepared Statement) ได้ง่ายขึ้น ไม่ต้องแบ่งกรณี 1 ค่า หรือหลายค่า
  • ลดโอกาสผิดพลาดจากการสร้าง Query String แบบ Manual
  • อ่านโค้ดง่ายขึ้นเมื่อมีการสร้างเงื่อนไขแบบไดนามิก

สรุป

ใช้ IN() กับค่าเดี่ยวได้ไม่มีปัญหา ทำงานเหมือน = ทุกประการ เหมาะสำหรับการเขียน Query แบบไดนามิกที่จำนวนค่าอาจเปลี่ยนแปลงได้