الحالة... عندما تكون مع سلاسل في الخلية
سؤال
مرحبا أريد أن يكون لدي بعض الاستعلام مثل
Select
case column1
when column2 like '%Test%' then column 3
else 0
end
FROM myTable
في العمود 2 يوجد varchars مخزنة.هل يمكن لأحد أن يساعدني في هذا؟
المحلول
هذا ليس له معنى كبير.لماذا تقوم بحالة على العمود 1 ولكنك تتجاهل هذه القيمة تمامًا بعد ذلك؟هل قمت للتو بنسخ و(ث) لصق ذلك في استعلامك؟
على أي حال، هذا ما أتوقع العمل به في أي من أنظمة RDBMS العادية:
case
when colum2 like ...then
3
else
0
end as abc
ومع ذلك، فإن الشيء الوحيد الذي أعرفه عن MySQL هو أنه عادةً ما يفعل كل شيء بشكل مختلف عما يفعله Joe RDMS العادي.
نصائح أخرى
هل تقصد شيئًا مثل ...
Select column3 from myTable where column2 like '%Test%'
union all
select 0 from myTable where column2 not like '%Test%'
لاحظ أن مشغل "لا يعجبني" يمكن أن يكون بطيئًا
لا تنتمي إلى StackOverflow