SQL - ตัวดำเนินการสัญลักษณ์แทน
เราได้พูดคุยเกี่ยวกับตัวดำเนินการ SQL LIKE ซึ่งใช้เพื่อเปรียบเทียบค่ากับค่าที่คล้ายกันโดยใช้ตัวดำเนินการตัวแทน
SQL สนับสนุนตัวดำเนินการตัวแทนสองตัวร่วมกับตัวดำเนินการ LIKE ซึ่งอธิบายโดยละเอียดในตารางต่อไปนี้
ซีเนียร์ | สัญลักษณ์และคำอธิบาย |
---|---|
1 | The percent sign (%) จับคู่อักขระตั้งแต่หนึ่งตัวขึ้นไป Note - MS Access ใช้อักขระตัวแทนเครื่องหมายดอกจัน (*) แทนอักขระตัวแทนเครื่องหมายเปอร์เซ็นต์ (%) |
2 | The underscore (_) จับคู่อักขระหนึ่งตัว Note - MS Access ใช้เครื่องหมายคำถาม (?) แทนขีดล่าง (_) เพื่อจับคู่อักขระตัวใดตัวหนึ่ง |
เครื่องหมายเปอร์เซ็นต์แสดงถึงศูนย์อักขระหนึ่งตัวหรือหลายตัว ขีดล่างแสดงถึงตัวเลขตัวเดียวหรืออักขระ สัญลักษณ์เหล่านี้สามารถใช้ร่วมกันได้
ไวยากรณ์
ไวยากรณ์พื้นฐานของตัวดำเนินการ '%' และ '_' มีดังต่อไปนี้
SELECT * FROM table_name
WHERE column LIKE 'XXXX%'
or
SELECT * FROM table_name
WHERE column LIKE '%XXXX%'
or
SELECT * FROM table_name
WHERE column LIKE 'XXXX_'
or
SELECT * FROM table_name
WHERE column LIKE '_XXXX'
or
SELECT * FROM table_name
WHERE column LIKE '_XXXX_'
คุณสามารถรวม N จำนวนเงื่อนไขโดยใช้ตัวดำเนินการ AND หรือ OR ในที่นี้ XXXX อาจเป็นค่าตัวเลขหรือสตริงก็ได้
ตัวอย่าง
ตารางต่อไปนี้มีตัวอย่างจำนวนหนึ่งที่แสดงส่วน WHERE ที่มีคำสั่ง LIKE ต่างกันโดยมีตัวดำเนินการ '%' และ '_'
ซีเนียร์ | คำชี้แจงและคำอธิบาย |
---|---|
1 | WHERE SALARY LIKE '200%' ค้นหาค่าใด ๆ ที่เริ่มต้นด้วย 200 |
2 | WHERE SALARY LIKE '%200%' ค้นหาค่าใด ๆ ที่มี 200 ในตำแหน่งใด ๆ |
3 | WHERE SALARY LIKE '_00%' ค้นหาค่าใด ๆ ที่มี 00 ในตำแหน่งที่สองและสาม |
4 | WHERE SALARY LIKE '2_%_%' ค้นหาค่าใด ๆ ที่ขึ้นต้นด้วย 2 และมีความยาวอย่างน้อย 3 อักขระ |
5 | WHERE SALARY LIKE '%2' ค้นหาค่าใด ๆ ที่ลงท้ายด้วย 2 |
6 | WHERE SALARY LIKE '_2%3' ค้นหาค่าใด ๆ ที่มี 2 ในตำแหน่งที่สองและลงท้ายด้วย 3 |
7 | WHERE SALARY LIKE '2___3' ค้นหาค่าใด ๆ ในตัวเลขห้าหลักที่ขึ้นต้นด้วย 2 และลงท้ายด้วย 3 |
ให้เรายกตัวอย่างจริงพิจารณาตารางลูกค้าที่มีบันทึกต่อไปนี้
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
| 6 | Komal | 22 | MP | 4500.00 |
| 7 | Muffy | 24 | Indore | 10000.00 |
+----+----------+-----+-----------+----------+
บล็อกโค้ดต่อไปนี้เป็นตัวอย่างซึ่งจะแสดงระเบียนทั้งหมดจากตาราง CUSTOMERS โดยที่ SALARY เริ่มต้นด้วย 200
SQL> SELECT * FROM CUSTOMERS
WHERE SALARY LIKE '200%';
สิ่งนี้จะให้ผลลัพธ์ดังต่อไปนี้
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
+----+----------+-----+-----------+----------+