MySQL условный запрос - сложный - PullRequest
0 голосов
/ 31 мая 2010

Я хочу получить разные значения для поля, скажем: field1 ... Для этого нужен запрос типа: «выбрать отличное (field1) из таблицы»

Однако для некоторых записей поле field1 пусто, и существует другой столбец, который является альтернативой field1, а именно field2. Для записей, где field1 пусто, мне нужно использовать значение field2. Я думаю, что мне нужно что-то вроде условного оператора select с if, что-то вроде:

 select distinct( (if(field1!='') field1 else field2) ) from table

Понятия не имею, как это написать. Любая помощь приветствуется ...

Ответы [ 3 ]

2 голосов
/ 31 мая 2010

SELECT DISTINCT IFNULL (field1, field2) ИЗ таблицы

должен сделать трюк.

1 голос
/ 31 мая 2010
SELECT DISTINCT (
 IF( coalesce(field1,'') <> '', field1, field2)
)
FROM table

Это будет работать как для нулевого, так и для пустого field1.

0 голосов
/ 31 мая 2010

Я думаю, что сделал это (не уверен, что результат правильный):

SELECT DISTINCT (
 IF( field1 <> '', field1, field2)
)
FROM table
...