کاراکترهای عام (Wildcards)
در SQL، «کاراکتر عام (Wildcard)» یعنی جایگزین کاراکترهای نامعلوم. با عملگر «LIKE» الگوی متن را می یابیم. مثل جستجوی نام هایی که با A شروع می شوند.
کاربرد کاراکترهای عام در LIKE
کاراکتر % یعنی صفر تا بی نهایت کاراکتر. کاراکتر _ یعنی دقیقا یک کاراکتر. این ها کنار WHERE برای الگویابی استفاده می شوند.
شروع با یک حرف خاص
برای نام هایی که با «a» شروع می شوند، % را آخر بگذار.
SELECT *
FROM Customers
WHERE CustomerName LIKE 'a%';
استفاده از % برای پایان یا شامل
برای پایان دادن با «es»، درصد را اول بگذار.
SELECT *
FROM Customers
WHERE CustomerName LIKE '%es';
برای «شامل بودن» الگو، دو طرف درصد بگذار.
SELECT *
FROM Customers
WHERE CustomerName LIKE '%mer%';
استفاده از _ برای یک کاراکتر
خط زیر یک حرف ناشناخته را نشان می دهد. دقیقا یک حرف.
SELECT *
FROM Customers
WHERE City LIKE '_ondon';
سه حرف ناشناخته بین L و on قرار بده.
SELECT *
FROM Customers
WHERE City LIKE 'L___on';
لیست کاراکترها با [] و بازه با -
در برخی پایگاه ها، [] یعنی یکی از این حروف. - یعنی بازه.
SELECT *
FROM Customers
WHERE CustomerName LIKE '[bsp]%';
SELECT *
FROM Customers
WHERE CustomerName LIKE '[a-f]%';
نکته: [] و - در PostgreSQL و MySQL پشتیبانی نمی شوند. الگوها بسته به موتور فرق دارند.
ترکیب کاراکترهای عام
می توانی % و _ را باهم استفاده کنی.
SELECT *
FROM Customers
WHERE CustomerName LIKE 'a__%';
SELECT *
FROM Customers
WHERE CustomerName LIKE '_r%';
تطبیق دقیق بدون کاراکتر عام
اگر وایلدکارت نگذاری، باید متن دقیقا برابر باشد.
SELECT *
FROM Customers
WHERE Country LIKE 'Spain';
نکته: در اوراکل، {} برای «Escape» پشتیبانی می شود. اما در بقیه موتورها متفاوت است. قبل از استفاده، راهنمای موتور را ببین.
برای ادامه ی موضوع، صفحه ی الگویابی با LIKE و همین صفحه ی کاراکترهای عام را مرجع کن.
گام های تمرینی سریع
- یک LIKE ساده با % بنویس.
- الگوی _ را امتحان کن.
- الگوها را ترکیب کن و نتیجه را مقایسه کن.
جمع بندی سریع
- % یعنی هر تعداد کاراکتر.
- _ یعنی دقیقا یک کاراکتر.
- [] و - برخی جاها پشتیبانی نمی شوند.
- بدون وایلدکارت، تطبیق دقیق است.
- موتور پایگاه داده را همیشه بررسی کن.