ورود

View Full Version : (حرفه ای ها کمک کنن!) استفاده شرطی از یک عبارت REGEXP (با قاعده) در Mysql



baraye1bar
چهارشنبه 31 اردیبهشت 1393, 11:25 صبح
فر ض کنید در یک tbl یک فیلد phone داریم که به صورت زیر مقدار دهی شده باشه:

تلفن: 021-8888888 و 09121222222 تماس بگیرید
با استفاده از عبارات منظم زیر میشه به شماره موبایل دسترسی پیدا کرد:

SELECT phone FROM tbl where phone REGEXP '9[0-9]{9}'

من میخواستم بدونم چطوری میشه از یک عبارت باقاعده برای مقایسه با فیلد دوم استفاده بشه و نتیجه هم خروجی عبارت با قاعده فیلد اول باشه یعنی:

SELECT phone REGEXP '9[0-9]{9}' FROM tbl where ( phone2 = phone REGEXP '9[0-9]{9}' )

این دستور عمل نمیکنه فقط برای درک بهتر موضوع نوشتم
لطفا حرفه ای ها راهنمایی کنن
ممنون

maysamscript
پنج شنبه 01 خرداد 1393, 22:45 عصر
این یک مقدار بولین بر میگردونه
phone REGEXP '9[0-9]{9}'

SELECT phone2 FROM tbl where ( phone2 REGEXP '9[0-9]{9}' = phone REGEXP '9[0-9]{9}' )



این منطقی تره

baraye1bar
چهارشنبه 07 خرداد 1393, 17:30 عصر
راهی برای استخراج یک عبارت منظرم هست؟ مثلا:
select replace('REGEXP',phone) from tbl

میتونید بگید مشکل این دستور چیه؟

SELECT tbl2.phone FROM tbl1 INNER JOIN tbl2 where ( tbl1.phone REGEXP '9[0-9]{9}' = tbl2.phone REGEXP '9[0-9]{9}' )

ممنون