Случай ... Когда со строками в MySQL - PullRequest
0 голосов
/ 27 ноября 2009

Привет, я хочу получить запрос типа

Select 
 case column1
  when column2 like '%Test%' then column 3
  else 0
 end
FROM myTable

в колонке 2 хранятся архивные файлы. Может ли кто-нибудь помочь мне с этим?

Ответы [ 2 ]

1 голос
/ 27 ноября 2009

Это не имеет особого смысла. Почему вы делаете кейс на column1, но потом полностью игнорируете это значение? Вы только что скопировали и (w) вставили это в свой запрос?

В любом случае, это то, что я ожидал бы работать в любой из обычных РСУБД ':

case
  when colum2 like ...then
    3
  else
    0
  end as abc

Тем не менее, единственное, что я знаю о mySQL, это то, что он обычно делает все иначе, чем это делал бы ваш обычный RDMS Joe.

0 голосов
/ 27 ноября 2009

Ты имеешь в виду что-то вроде ...

Select column3 from myTable where column2 like '%Test%'  
union all  
select 0 from myTable where column2 not like '%Test%'

Обратите внимание, что оператор "not like" может быть медленным

...