محمد صادقیان
4 سال پیش توسط محمد صادقیان مطرح شد
1 پاسخ

نحوه queryزدن در mysql‌ برای یک دیتای خاص

سلام. 2 روزه به یک مشکلی در query زدن برخوردم که امروز مطرح میکنم کسی بلد باشه لطفا کمک کنه.
توضیح تصویر رو وارد کنید
طبق تصویر این دیتا یه سری callid تکراری داره که فیلدهای eventشون متغییر هست. حالا باید یه query نوشته بشه که چک کنه اگه event برابر DID باشه فیلد data1 رو بخونه و اگر event برابر با ENTERQUEUE بود فیلد Data2 رو بخونه. یعنی اینطوری بگم که همه این callid هارو باید group بکنه ولی با شرط هایی که دیتای فیلدهای data1 - data2 - data3 رو با توجه به نوع event شون برداره و تو یه فیلد قرار بده که بتونم همشو تو یه سطر بخونم.
مشکل اینجاست که بلدنیستم تو یدونه query همه اینارو تو یه سطر بدست بیارم.


ثبت پرسش جدید
mmjvox
تخصص : QML,Objective-C,Qt/C++,Webasse...
@mmdjv.kh94 4 سال پیش آپدیت شد
0

@drcode.ir

الان دیگه توی همه توزیع ها ز 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 مشکل خورد تقریبا باید همچین چیزی باشه.


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام