سؤال

مرحبا أريد أن يكون لدي بعض الاستعلام مثل

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%'

لاحظ أن مشغل "لا يعجبني" يمكن أن يكون بطيئًا

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top