SQL Wildcards


สำหรับการดูตัวอย่างแนะนำให้เข้าดูผ่าน browser edge / safari เนื่องจาก chrome ไม่รองรับ web sql อีกต่อไปแล้ว

SQL Wildcard Characters

wildcard character ใช้เพื่อแทนที่อักขระตั้งแต่หนึ่งตัวขึ้นไปในสตริงและถูกนำมาใช้ร่วมกับ LIKE operator ซึ่งถูกใช้ข้างใน WHERE clause เพื่อค้นหารูปแบบที่ระบุในคอลัมน์

ตัวอย่าง

ส่งคืนค่าลูกค้าทั้งหมดที่ขึ้นต้นด้วยตัวอักษร ‘a’:

SELECT * FROM Customers
WHERE CustomerName LIKE 'a%';


Wildcard Characters

สัญลักษณ์คำอธิบาย
%แสดงถึงอักขระ 0 หรือมากกว่า
_แสดงถึงอักขระตัวเดียว
[]แสดงถึงอักขระเดี่ยวใดๆที่อยู่ในวงเล็บ*
^แสดงถึงอักขระใดๆที่ไม่อยู่ในวงเล็บ*
แสดงถึงอักขระเดี่ยวใดๆภายในช่วงที่ระบุ*
{}แสดงถึงอักขระที่หลีกเลี่ยง**

* ไม่รองรับฐานข้อมูล PostgreSQL และ MySQL

** รองรับเฉพาะในฐานข้อมูล Oracle เท่านั้น


Demo Database

ด้านล่างนี้คือการเลือกจากตาราง Customers ที่ใช้ในตัวอย่าง:

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1
Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.05021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.05023Mexico
4
Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK
5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden


การใช้ % Wildcard

 % wildcard แสดงถึงอักขระจำนวนเท่าใดก็ได้แม้แต่อักขระศูนย์ก็ตาม

ตัวอย่าง

ส่งคืนลูกค้าทั้งหมดที่ลงท้ายด้วยรูปแบบ ‘es’:

SELECT * FROM Customers
WHERE CustomerName LIKE '%es';

ตัวอย่าง

ส่งคืนลูกค้าทั้งหมดที่มีรูปแบบ ‘mer’:

SELECT * FROM Customers
WHERE CustomerName LIKE '%mer%';


การใช้ _ Wildcard

_ wildcard แสดงถึงอักขระตัวเดียวอาจเป็นอักขระหรือตัวเลขใดก็ได้ แต่ละ_ตัวแทนอักขระแค่ตัวเดียวเท่านั้น

ตัวอย่าง

ส่งคืนค่าลูกค้าทั้งหมดโดย City ขึ้นต้นด้วยอักขระใดๆ ตามด้วย “ondon”:

SELECT * FROM Customers
WHERE City LIKE '_ondon';

ตัวอย่าง

ส่งคืนค่าลูกค้าทั้งหมดโดย City ขึ้นต้นด้วย “L” ตามด้วยอักขระ 3 ตัว และลงท้ายด้วย “on”:

SELECT * FROM Customers
WHERE City LIKE 'L___on';


 การใช้ [] Wildcard

 [] wildcard จะส่งกลับผลลัพธ์หากอักขระตัวใดตัวหนึ่งภายในตรงกัน

ตัวอย่าง

ส่งคืนลูกค้าทั้งหมดที่ขึ้นต้นด้วย “b”, “s” หรือ “p”:

SELECT * FROM Customers
WHERE CustomerName LIKE '[bsp]%';


การใช้ – Wildcard

 - wildcard ช่วยให้คุณสามารถระบุช่วงของอักขระภายใน [] wildcard.

ตัวอย่าง

ส่งคืนค่าลูกค้าทั้งหมดที่ขึ้นต้นด้วย “a”, “b”, “c”, “d”, “e” หรือ “f”:

SELECT * FROM Customers
WHERE CustomerName LIKE '[a-f]%';


 การใช้ Wildcards รวมกัน

wildcard ใดๆ เช่น  % และ  _ , สามารถใช้ร่วมกับ wildcards อื่นๆได้

ตัวอย่าง

ส่งคืนลูกค้าทั้งหมดที่ขึ้นต้นด้วย “a” และมีความยาวอย่างน้อย 3 ตัวอักษร:

SELECT * FROM Customers
WHERE CustomerName LIKE 'a__%';

ตัวอย่าง

คืนลูกค้าทั้งหมดที่มี “r” ในตำแหน่งที่สอง:

SELECT * FROM Customers
WHERE CustomerName LIKE '_r%';


ไม่มี Wildcard

หากไม่มีการระบุ Wildcard วลีจะต้องตรงกันทุกประการจึงจะส่งกลับผลลัพธ์

ตัวอย่าง

คืนลูกค้าทั้งหมดจากสเปน:

SELECT * FROM Customers
WHERE Country LIKE 'Spain';


ตัวแทนการเข้าถึงของ Microsoft

ฐานข้อมูล Microsoft Access มี wildcards อื่นๆ:

Symbolคำอธิบายตัวอย่าง
*แสดงถึงอักขระ 0 หรือ มากกว่านั้น bl* finds bl, black, blue, and blob
?แสดงถึงอักขระเดี่ยวh?t finds hot, hat, and hit
[]แสดงถึงอักขระเดี่ยวใดๆ ที่อยู่ในวงเล็บ h[oa]t finds hot and hat, but not hit
!แสดงถึงอักขระใดๆ ที่ไม่อยู่ในวงเล็บh[!oa]t finds hit, but not hot and hat
แสดงถึงอักขระเดี่ยวใดๆ ที่อยู่ในช่วงที่ระบุc[a-b]t finds cat and cbt
#แสดงถึงอักขระตัวเลขเดี่ยว2#5 finds 205, 215, 225, 235, 245, 255, 265, 275, 285, and 295