سلام. 2 روزه به یک مشکلی در query زدن برخوردم که امروز مطرح میکنم کسی بلد باشه لطفا کمک کنه.
طبق تصویر این دیتا یه سری callid تکراری داره که فیلدهای eventشون متغییر هست. حالا باید یه query نوشته بشه که چک کنه اگه event برابر DID باشه فیلد data1 رو بخونه و اگر event برابر با ENTERQUEUE بود فیلد Data2 رو بخونه. یعنی اینطوری بگم که همه این callid هارو باید group بکنه ولی با شرط هایی که دیتای فیلدهای data1 - data2 - data3 رو با توجه به نوع event شون برداره و تو یه فیلد قرار بده که بتونم همشو تو یه سطر بخونم.
مشکل اینجاست که بلدنیستم تو یدونه query همه اینارو تو یه سطر بدست بیارم.
الان دیگه توی همه توزیع ها ز mariadb به جای mysql استفاده میشه (توی بعضی از توزیع ها اسم سرویس همون mysql مونده ولی mariadb اجرا میشه و بعضی از سینتکس های mariadb با mysql متفاوته) و من احتمال میدم دیتابیس شما الان mariadb باشه و این کوئری فکر می کنم به درد شما بخوره:
SELECT callid,
IF(STRCMP(event,'DID'),'empty',data1),
IF(STRCMP(event,'ENTERQUEUE'),'empty',data2),
IF(STRCMP(event,'RINGNOANSWER'),'empty',data3)
from (
SELECT
callid as 'callid',
event as 'event' ,
data1 as 'data1',
data2 as 'data2',
data3 as 'data3'
FROM yourTable
) t ;
و نمیدونم روی خود mysql جواب میده یانه ولی اگه روی خود mysql مشکل خورد تقریبا باید همچین چیزی باشه.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟