LIKE ใช้ทำอะไร?
ใช้ค้นหาข้อมูลแบบ Pattern Matching ด้วย Wildcard ในเงื่อนไข WHERE ของ SELECT, INSERT, UPDATE, DELETE
รูปแบบคำสั่ง
expression LIKE pattern [ESCAPE escape_character]
Wildcard Characters
| สัญลักษณ์ | ความหมาย |
|---|---|
% | ตัวอักษรใดๆ จำนวนเท่าไรก็ได้ (รวม 0 ตัว) |
_ | ตัวอักษรเพียง 1 ตัวเท่านั้น |
[abc] | ตัวอักษรใดตัวหนึ่งในชุด (a, b, หรือ c) |
[^abc] | ตัวอักษรใดๆ ยกเว้น a, b, c |
Escape Character
ใช้เมื่อต้องการค้นหาตัวอักษร % หรือ _ โดยตรง (ไม่ใช่ wildcard) ระบุตัวอักษรหนึ่งตัวเป็น escape
ตัวอย่าง
1. ใช้ % (ขึ้นต้น/ลงท้าย/ตรงกลาง)
-- นามสกุลขึ้นต้น B
WHERE ho LIKE 'B%'
-- นามสกุลมีตัว o อยู่ตรงกลาง
WHERE ho LIKE '%o%'
2. ใช้ _ (ตัวอักษรเดียว)
-- นามสกุล 4 ตัวอักษร เริ่ม Ad จบ m
WHERE ho LIKE 'Ad_m'
-- ผล: Adam, Adem, Adim, Adom...
3. ใช้ [] (ชุดตัวอักษร)
-- ชื่อ 5 ตัวอักษร เริ่ม Sm จบ th ตัวกลาง i หรือ y
WHERE ten LIKE 'Sm[iy]th'
-- ผล: Smith, Smyth
4. ใช้ [^] (ยกเว้น)
-- ชื่อ 5 ตัวอักษร เริ่ม Sm จบ th ตัวกลาง ไม่ใช่ i และ y
WHERE ten LIKE 'Smy[^iy]th'
-- ผล: Smath, Smeth...
5. ใช้ NOT LIKE
-- นามสกุลไม่ขึ้นต้น B
WHERE ho NOT LIKE 'B%'
6. ใช้ ESCAPE
-- ค้นหา secret_hint ที่เป็น 123%455 (ตัว % เป็นตัวอักษรจริง)
WHERE secret_hint LIKE '123!%455' ESCAPE '!'
-- ค้นหา เริ่ม H จบ %
WHERE secret_hint LIKE 'H%!%' ESCAPE '!'
-- ค้นหา เริ่ม H จบ _
WHERE secret_hint LIKE 'H%!_' ESCAPE '!'