×

اپراتور LIKE در SQLite

فصل پانزدهم :

اپراتور 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

     


مفاهیم و موضوعات این فصل عبارتند از :

  • اپراتور LIKE در SQLite

vatantop
نظرات و سوالات درج سوال/ نظر