فصل پانزدهم :
اپراتور LIKE در SQLite
هنگامی که بخواهیم یک رشته را با الگویی مقایسه کنیم از این اپراتور استفاده میکینم . اگر رشته ما با الگوی تعیین شده مطابقت داشت اپراتور LIKE مقدار true برمیگرداند و اگر خیر مسلما نتیجه false خواهد بود
دو کاراکتر هستند که برای ساختن الگوی مقایسه در اپراتور LIKE بکارمیروند که عبارتند از :
علامت درصد %
(percent sign (%) )
و
The underscore (_)
علامت درصد معرف صفر،یک و یا چند کاراکتر است و "_" (یا همان اندرلاین خودمان) معرف یک کاراتر و یا یک عدد می باشد. به الگو های ذیل توجه کنید :
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_'
در مثال های بالا XXXX معرف هر رشته کاراکتری و یا عددی می باشد .
مثالهای ذیل موضوع را بیشتر روشن خواهند کرد.
توضیح
|
عبارت
|
تمامی مقادیری را که با 200 شروع شوند می یابد
|
WHERE SALARY LIKE '200%'
|
تمامی مقادیری را می یابد که 200 را در هر موقعیت داشته باشد.مهم نیست که قبل و بعد 200 کاراکتری باشد فقط کافیست رشته حاوی 200 باشد
|
WHERE SALARY LIKE '%200%'
|
تمامی مقادیری را می یابد که 00 را در موقعیت دوم و سومشان داشه باشند
|
WHERE SALARY LIKE '_00%'
|
تمامی مقادیری را می یابد که با 2 شروع شوند و حداقل شامل 3 کاراکتر باشند
|
WHERE SALARY LIKE '2_%_%'
|
تمامی مقادیر که با 2 پایان یابند
|
WHERE SALARY LIKE '%2'
|
تمامی مقادیری که حاوی 2 در موقعیت دوم بوده و با 3 پایان یابند
|
WHERE SALARY LIKE '_2%3'
|
تمامی مقادیر دارای 5 رقم که با 2 شروع شده و با 3 پایان یابند
|
WHERE SALARY LIKE '2___3'
|
حالا یک مثال واقعی ، جدول COMPANY را به خاطر بیاورید.
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
1 Paul 32 California 20000.0
2 Allen 25 Texas 15000.0
3 Teddy 23 Norway 20000.0
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0
6 Kim 22 South-Hall 45000.0
7 James 24 Houston 10000.0
sqlite> SELECT * FROM COMPANY WHERE AGE LIKE '2%';
یعنی تمام رکورد هایی را بیاور که فیلد AGE انها با عدد 2 شروع شود:
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
2 Allen 25 Texas 15000.0
3 Teddy 23 Norway 20000.0
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0
6 Kim 22 South-Hall 45000.0
7 James 24 Houston 10000.0
تمرین : سلکتی بنویسید که از رکورد های جدول COMPANY انهایی را در در فیلد آدرسشان "-" وجود دارد را لیست کند
sqlite> SELECT * FROM COMPANY WHERE ADDRESS LIKE '%-%';
و نتیجه به شکل ذیل خواهد بود:
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
4 Mark 25 Rich-Mond 65000.0
6 Kim 22 South-Hall 45000.0
مفاهیم و موضوعات این فصل عبارتند از :