PostgreSQL

سرفصل دروس

LIKE

مقدمه ای بر عملگر LIKE در PostgreSQL 

فرض کنید مدیر فروشگاه از شما بخواهد که یک مشتری را پیدا کنید که نام آن را بصورت دقیق بخاطر نمی آورد. او فقط بخاطر دارد که نام مشتری با Jen شروع می شود. حال برای پیدا کردن مشخصات مشتری مورد نظر چه باید کرد؟ باید در جدول customer به دنبال مشتریانی بگردید که نام آنها با Jen شروع شده باشد. برای این کار می توانید از عملگر LIKE استفاده نمایید: 

SELECT
 first_name,
        last_name
FROM
 customer
WHERE
 first_name LIKE 'Jen%';

لیست مشتریان با jen

 

توجه نمایید دستور WHERE دارای عبارات خاص می باشد: first_name و عملگر LIKE و  رشته ای که شامل درصد % می باشد که به آن الگو می گویند. این پرس و جو تمام ردیف هایی که نام آنها با Jen شروع می شود را بر می گرداند. به این شیوه تطبیق الگو می گویند. شما می توانید از درصد (%) برای تطابق مجموعه ای از کاراکترها و از زیرخط ( _ ) برای تطابق تک تک کاراکتر ها و ترکیب آنها با LIKE و NOT LIKE جهت ایجاد الگوها استفاده نمایید. 

دستوز زبان عملگر LIKE در PostgreSQL بصورت زیر می باشد: 

string LIKE pattern

اگر string  با pattern منطبق باشد مقدار true و در غیر این صورت مقدار false بر گردانده می شود. 

شما می توانید عملگر LIKE را با عملگر NOT ترکیب نمایید: 

string NOT LIKE pattern

 

مثال های تطابق االگو در PostgreSQL 

مثال های LIKE در PostgreSQL 

به مثال های زیر توجه نمایید: 

SELECT
 'foo' LIKE 'foo', -- true
 'foo' LIKE 'f%', -- true
 'foo' LIKE '_o_', -- true
 'bar' LIKE 'b_'; -- false
  • اولین عبارت مقدار true بر می گرداند چون الگو foo هیچ کاراکتر اضافی ندارد و عملگر LIKE مانند = عمل می کند. 
  • عبارت دوم مقدار true بر می گرداند چون مطابق تمام عباراتی است که با f شروع شده و هر تعداد کاراکتری بعد آن آمده باشد. 
  • عبارت سوم مقدار true بر می گرداند چون مطابق عباراتی است که با یک کاراکتر شروع شود و سپس کاراکتر o راشد و سپس یک کاراکتر دیگر باشد. 
  • عبارت چهارم مقدار false بر می گرداند چون مطابق عباراتی است که با b شروع شده باشد و بعد از آن یک کاراکتر باشد.

مثال زیر لیست تمام مشتریانی که در اسم آنها er وجود دارد را نمایش می دهد: 

SELECT
 first_name,
        last_name
FROM
 customer
WHERE
 first_name LIKE '%er%'

لیست تمام مشتریانی که در اسم آنها er وجود دارد

 

شما همچنین می توانید برای ایجاد الگو از ترکیب درصد (%) و زیر خط ( _ ) استفاده نمایید:

SELECT
 first_name,
 last_name
FROM
 customer
WHERE
 first_name LIKE '_her%';

 ترکیب درصد (%) و زیر خط ( _ )

 

مثال های NOT LIKE در PostgreSQL

مثال زیر لیست مشتریانی را نمایش می دهد که نام آنها با Jen شروع نشده است: 

SELECT
 first_name,
 last_name
FROM
 customer
WHERE
 first_name NOT LIKE 'Jen%';

 لیست مشتریانی را نمایش می دهد که نام آنها با Jen شروع نشده

 

افزونه های عملگر LIKE در PostgreSQL 

PostgreSQL  عملگر ILIKE را محیا کرده است که مانند عملگر LIKE عمل می کند. در عملگر ILIKE حروف کوچک و بزرگ مهم نمی باشد. به مثال زیر توجه نمایید: 

SELECT
 first_name,
 last_name
FROM
 customer
WHERE
 first_name ILIKE 'BAR%';

در عملگر ILIKE حروف کوچک و بزرگ مهم نمی باشد

 

PostgreSQL  همچنین عملگرهایی را که مانند LIKE, NOT LIKE, ILIKE و NOT ILIKE عمل می کنند را ایجاد کرده است:

  • ~~ برابر با LIKE می باشد.
  • ~~* برابر با ILIKE می باشد. 
  • !~~ برابر با NOT LIKE می باشد. 
  • !~~* برابر با  NOT ILIKE می باشد. 

 

اشتراک گذاری :