با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن ، و کاربرانی که دوره آموزش SQLite را دنبال می کنند. در بخش های قبلی با دستور شرطی WHERE در SQLite آشنا شدیم که امکان انتخاب بخشی از رکوردهای یک یا چند جدول را در SQLite را فراهم می کند، اما در برخی موارد ما نیاز داریم که انتخاب دقیق تری انجام دهیم، به عنوان مثال شاید بخواهیم که رکوردهایی که ابتدای آن با یک یا چند حرف مشخص شروع شده و یا شامل آن ها باشد را انتخاب کنیم، برای اینگونه موارد می توانیم از دستور شرطی LIKE در SQLite استفاده کنیم، که ادامه ی این مبحث طرز استفاده از دستور LIKE در SQLite را بررسی می کنیم.
در ادامه ی این آموزش سینتکس دستور LIKE در SQLite و مثال هایی از آن را ارائه کرده ایم.
دستور WHERE عملکرد عملگرهای از جمله = را پیاده سازی می کند، و تمام مقادیر یک فیلد را مطابقت می دهد.
اما دستور شرطی LIKE در SQLite برای فیلتر کردن یک جستجو بسیار مناسب است.
استفاده از دستور LIKE در SQLite به همراه کاراکتر ٪ کار فیلتر جستجوها را انجام می دهد.
ساختار عمومی سینتکس دستور DELETE در SQLite برای استخراج دادها از جداول به صورت زیر است :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 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_' |
در این ساختار نیز شما می توانید N تعداد شرط را با استفاده از عملگرهای AND یا OR تعریف کنید.
مثال
جدول زیر شامل تعدادی از مثال هایی است که دستور WHERE را به همراه نمونه های مختلف LIKE با عملگرهای ‘%’ و ‘_’ نشان می دهد:
ردیف | دستورات و توضیحات |
---|---|
۱ | WHERE SALARY LIKE ‘200%’ هر مقداری را که با ۲۰۰ شروع شده باشد را پیدا می کند. |
۲ | WHERE SALARY LIKE ‘%200%’ هر مقداری را که شامل ۲۰۰ باشد را پیدا می کند. |
۳ | WHERE SALARY LIKE ‘_00%’ هر مقداری را که شامل ۰۰ در مکان های دوم و سوم باشد را پیدا می کند. |
۴ | WHERE SALARY LIKE ‘2_%_%’ هر مقداری را که با ۲ شروع شده و طول آن کمتر از ۳ کاراکتر باشد را پیدا می کند. |
۵ | WHERE SALARY LIKE ‘%2’ هر مقداری را که با ۲ تمام شده باشد را پیدا می کند. |
۶ | WHERE SALARY LIKE ‘_2%3’ هر مقدرای را که در مکان دوم آن ۲ بوده و با ۳ تمام می شود را پیدا می کند. |
۷ | WHERE SALARY LIKE ‘2___3’ هر مقدار ۵ رقمی را که با ۲ شروع شده و با ۳ تمام می شود را پیدا می کند. |
جدول COMPANY را با رکوردهای زیر در نظر بگیرید :
1 2 3 4 5 6 7 8 9 | 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 |
مثال زیر تمام رکوردهایی را از جدول COMPANY برمی گرداند که فیلد AGE آنها با ۲ شروع شده باشد :
1 | sqlite> SELECT * FROM COMPANY WHERE AGE LIKE '2%'; |
نتایج کد فوق به صورت زیر خواهد بود :
1 2 3 4 5 6 7 8 | 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 برمی گرداند که فیلد ADDRESS آن ها شامل خط فاصله (-) در متن آن باشد :
1 | sqlite> SELECT * FROM COMPANY WHERE ADDRESS LIKE '%-%'; |
نتیجه ی اجرای کد فوق به صورت زیر خواهد بود :
1 2 3 4 | ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 4 Mark 25 Rich-Mond 65000.0 6 Kim 22 South-Hall 45000.0 |
برای جستجوهای کلی در جداول SQLite، دستور WHERE گزینه ی مناسبی است، اما برای جستجوهای دقیق و جزئی تر می توان از دستور شرطی LIKE در SQLite استفاده کرد.