2016-11-03 5 views
0

Я довольно новыми для MySQL, но мне интересно, как сделать следующее:условие где предложение на основе идентификатора подряд в

SELECT name from table 
if the id=1 then SELECT name WHERE '%first%' 

else if the id in (2,3,4) then SELECT name 

В принципе, я хочу, чтобы проверить строку «первый» в названии если id равен 1 и не проверять ни одну строку, если идентификатор равен 2, 3 или 4. Есть ли простой способ сделать это? Я только нашел функцию IF, но не могу использовать в ней 2 условия. Кроме того, таблица имеет больше, чем только идентификаторы 1,2,3,4, поэтому я не могу просто сказать другое; Мне все еще нужно проверить, находятся ли идентификаторы (2,3,4).

Цените помощь!

ответ

3

Вы можете использовать комбинации and и or.

SELECT name from table 
where (id=1 and name like '%first%') 
or id in (2,3,4) 

Edit: На основе комментарий OP для еще одно условие, которое должно быть применено идентификаторам 1,2,3,4

SELECT name from table 
where birthyear=1990 
and ((id=1 and name like '%first%') or id in (2,3,4)) 
+0

Вот о чем я думал, но теперь, что если у меня есть третье условие это относится к обоим, если id = 1 и id = 2,3,4, такие как birthyear = 1990 –

+0

см. edit ... –

+0

dang, perfect. Я не понимал, что вы можете поставить аналогичное условие сразу после того, где и добавить более конкретные условия позже. Спасибо за помощь! –

Смежные вопросы