عملگر LIKE در MySQL

آموزش پایگاه داده

عملگر LIKE در MySQL

از سری آموزش های MySQL می خواهیم در مورد یکی از عملگر های SQL یعنی عملگر Like در MySQL صحبت کنیم ، توصیه میکنیم تا انتهای آموزش با تاتژن همراه…

Avatar
توسط مهندس طهماس زاده
-- آخرین بروزرسانی : 24-03-2020
-- بازدیدها : ۱۲
اشتراک گذاری در :

از سری آموزش های MySQL می خواهیم در مورد یکی از عملگر های SQL یعنی عملگر Like در MySQL صحبت کنیم ، توصیه میکنیم تا انتهای آموزش با تاتژن همراه باشید.

عملگر LIKE در MySQL:

ممکن است از شما خواسته شود اطلاعات خاصی را استخراج کنید که از یک الگوریتم و یا الگوی خاصی پیروی کنند. به طور مثال از شما خواسته شود اطلاعات ناظرانی را بدید که حرف اول اسمشون A باشه یا حرف آخر کلمه ی خاصی باشه یا اینکه برای شما اهمیتی نداره که اول یا آخر باشه فقط میخواید این حرف در اسامی وجود داشته باشه.

خب بریم ببینیم چطوری میشه یه همچین الگویی رو پیاده سازی کرد…

قالب کلی کد شما باید به شکل زیر باشه:

SELECT “ROWS_NAME”
FROM “TABLE_NAME”
WHERE “ROWS_NAME” LIKE “YOUR ORDER”

جدول ناظر رو در زیر مشاهده میکنید:

Database Like | MySQL
Database Like | MySQL

مساله) در جدول ناظران، اطلاعات افرادی رو استخراج کنید که حرف اول نام آن ها S باشد.

پاسخ: با توجه به اطلاعات خواسته شده در مساله متوجه میشیم که هیچ گونه ستون خاصی مد نظر نیست پس تمامی ستون ها در خروجی نمایش داده میشوند اما با توجه به شرط گذاشته شده باید اطلاعاتی استخراج بشن که حرف اول نام آن ها “س” یا “S” باشد.

کد:

SELECT *
FROM nazer
WHERE name LIKE ‘s%’

خروجی :

Database Like | MySQL
Database Like | MySQL

نکته:علامت درصد”%” در بعد از حرف s به این معناست که حروف بعد از s اهمیتی ندارند و فقط لازم است اسامی با حرف s‌ شروع شوند. به همین علت علامت درصد در بعد از حرف s  آوردیم.

نکته:اگرحرفی در بین دو علامت درصد “%” قرار بگیرد یعنی مکان حرف مورد نظر اهمیت ندارد فقط کافیه این حرف در کلمه باشه.

راه اندازی و نصب MySQL در مک

اما اگر “%” را قبل از s بیاریم چی؟

مساله)اطلاعات افرادی که نام آن ها با حرف “D”‌ یا “د” تمام شود.

کد:

SELECT *
FROM nazer
WHERE name LIKE ‘%d’

خروجی:

عملگر like
عملگر like

همونطور که در خروجی میبینید لیست افرادی نمایش داده شده است که در آخر اسامی آن ها حرف “د” دیده میشود.برای اینکار باید حتما علامت درصد قبل از حرف مد نظر قرار بگیرد.

 

تمرین: اطلاعات افرادی رو بنویسید که اسم آن ها با “s” شروع شده و با حرف “d” پایان میابد.

در بالا حالتی را بررسی کردیم که برامون اصلا اهمیت نداره اسامی چند حرفی هستند فقط اگر شرط ما برای آن ها برقرار بود در خروجی چاپ میشدند.

حال فرض کنید میخواهیم تعداد حروف اسامی برای ما حائز اهمیت باشه فرضا حتما اسامی که نمایش داده میشه پنج حرفی باشند و یا اینکه حرف اول آن ها با “s”‌ شروع بشه اما پنج حرفیم باشن.

ما این کار رو میتونیم با خط فاصله یا “_” انجام بدیم. به این صورت که به ازای هر حرف یک “_” قرار میدیم.در ادامه ی پست به کد توجه کنید تا بهتردرک کنید.

مساله) اطلاعات افرادی که اسامی آن ها با حرف “s” شروع شده باشد و حتما اسم آن ها پنج حرفی باشد.

پاسخ)قالب کد که تغییری نمیکنه اما باید به شرط خواسته شده توجه کنید.

کد:

SELECT *
FROM nazer
WHERE name LIKE ‘s____’

در کد بالا من حرف “s” را نوشتم و در ادامش 4 تا “_” گذاشتم-اسامی باید پنج حرفی باشند-تا شرط مساله برقرار باشد.

خروجی:

عملگر like
عملگر like

در خروجی بالا میبیند که تمامی اسامی پنج حرفی که با حرف “s” شروع شده اند نمایش داده شده است که نام های “saeed”‌ و “saman” را شامل میشود.

دستور Polyline یا ترسیم خطوط پشت سر هم در اتوکد

 

عملگر REGEXP‌ در MySQL:

این عملگر شبیه به عملگر LIKE عمل میکند اما بسیار قدرتمندتر وکاربردی تره و اینکه استفاده ازش هم راحت تره.

کلمه REGEXP مخفف کلمه ی REGULAR EXPRESSION  هست که در اصل برای الگو گذاشتن برای داده های رشته ای به کار برده میشه که در ادامه به عملکرد خیلی جالب این عملگر میپردازیم.

با توجه به جدول ناظر که در بالا اشاره شده، مسائل و تحلیل آن ها بررسی میکنیم.

مساله) اطلاعات افرادی که حرف “S”‌ در آن ها وجود داشته باشد.

پاسخ) برای این مساله به دو روش میتونیم کد بنویسیم که من هر دو رو مینویسم تا تفاوتشون رو از نزدیک ببینید.

با استفاده از عملگر LIKE:

SELECT *
FROM nazer
WHERE name LIKE ‘%S%’

با استفاده از عملگر REGEXP :

SELECT *
FROM nazer
WHERE name REGEXP ‘S’

در این عملگر نیازی به استفاده از علامت درصد نیست و تنها نوشتن حروف کافیه.

خروجی:

عملگر like در MySQL
عملگر like در MySQL

در جدولی که به عنوان خروجی نمایش داده شده مشاهده میکنید اسامی هستند بدون در مظر گرفتن موقعیت حرف “S” در کلمه در خروجی چاپ شده اند.

مساله)اطلاعات افرادی که اسامی آن ها با حرف “S”‌ شروع شده است.

با استفاده از عملگر LIKE:

SELECT *
FROM nazer
WHERE name LIKE ‘S%’

با استفاده از عملگر REGEXP:

SELECT *
FROM nazer
WHERE name REGEXP ‘^S’

در عملگر REGEXP‌ برای اینکه نشان دهیم حتما حرف باید در ابتدا کلمه باشد از علامت”^”  استفاده میکنیم.

خروجی:

عملگر like در MySQL
عملگر like در MySQL

مساله:اطلاعات افرادی که در اسامی آن ها حرف آخر “D”‌ باشد.

با استفاده از عملگر LIKE:

SELECT *
FROM nazer
WHERE name LIKE ‘%D’

با استفاده از عملگر REGEXP:

SELECT *
FROM nazer
WHERE name REGEXP ‘D$’

خروجی :

نوار ابزار کنترلی در رویت - View Control Bar
عملگر like در MySQL
عملگر like در MySQL

مساله) اطلاعات افرادی که در اسامی آن شامل یکی از دو حرف‌ “SA” یا “AH” یا “ZA” باشد.

پاسخ:

برای نوشتن این کد توسط عملگر  LIKE‌ بسیار سخت و ناخواناست به همین علت به عملگر REGEXP‌ روی میاریم.

SELECT *
FROM nazer
WHERE name REGEXP ‘SA|AH|ZA’

در کد بالا میبینید که برای نشان دادن اجتماع برای داده ها از علامت  “|” استفاده شده است.

خروجی:

عملگر like در MySQL
عملگر like در MySQL

مساله) اطلاعات افرادی که اخرین حرف اسم آن ها “d” باشه و قبل از آن یکی از سه حرف “N”  و “E“و”A” باشد.

پاسخ)برای این کار باید سه حرفی که میخواهیم در قبل از کلمه ی آخر قرار بگیرد در درون براکت قرار دهیم.

در خروجی باید سه کلمه ای که آخر آن ها به صورت “AD” و “ED” و “ND” وجود دارد نمایش داده شود.

کد:

SELECT *
FROM nazer
WHERE name REGEXP '[NAE]D'

خروجی:

عملگر like در MySQL
عملگر like در MySQL

فرض کنید میخواستیم اگر حروف A تا E قبل از کلمه ی ما قبل آخر وجود داشت در خروجی نمایش داده شود برای اینکار لازم نیست تک تک حروف را مانند کد بالا بنویسم بلکه میتوانیم از علامت   “-“ استفاده کنیم.به کد زیر توجه کنید.

SELECT *
FROM nazer
WHERE name REGEXP '[A-E]D'

خروجی :

عملگر like در MySQL
عملگر like در MySQL

تمرین: با استفاده از عملگر REGEXP اطلاعات افرادی را بدست آورید که:

الف)اول اسم آن ها با “A” شروع شود و یا اسم آن ها شامل حرف “H”‌شود.

ب)اول اسم آن ها با “S” و اخرین حرف اسمشان با “D” تمام شود.

ج)اسم هایی که شامل حرف “A” باشد و به دنبال آن یکی از حروف “H” و “N” و “R”‌باشد

تگ ها : ، ، ،

دیدگاه بگذارید

avatar
  اشتراک  
اطلاع از
ارسال تیکت