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 |
+----+----------+-----+-----------+----------+