2012-01-26 1 views
0

Пожалуйста, помогите с инструкцией if в MySQL 5.5. Я пытаюсь сравнить значения столбцов, чтобы увидеть, все ли они одинаковые или разные.Сравнение нескольких столбцов с использованием IF в MySQL

SELECT IF(Column1 = Column2 = Column3 = Column4 = Column5, 'SAME', 'Different') 
AS ValueStatus 
FROM dbs.tabletest 
GROUP BY Id 

Я также попытался следующие, однако, это приносит только один результат типа как «Different», даже если все столбцы имеют одинаковые значения.

SELECT *,CASE 
    WHEN Column1 = Column2 = Column3 = Column4 = Column5 
    Then 'Same' 
    ELSE 'Different' 
END 
    AS ValueStatus 
    FROM dbs.tabletest 
    GROUP BY Id; 

ответ

2

Должно быть column1 = column2 and column1 = column3 and column1 = column4 and column1 = column5.

Что случилось с вами, вероятно, вы сравнили column1 с column2, который вернулся true, то вы сравнили true с column3, что дает false, сравнить false с column4, который также принимает значение false и т.д.

+0

Не могли бы вы также помочь в том, как обрабатывать/игнорировать/отфильтровывать значения NULL из этих столбцов и сравнивать только с NOT NULL, некоторые столбцы имеют значения NULL, которые изменяют статус на разные, хотя все NOT NULL являются одинаковыми значения. Спасибо –

+0

Добавление Col 1 или COL 2 или COL 3 'NOT NULL' in Where не дает правильных результатов. Где все значения Null, несущие столбцы, игнорируются, необходимо отслеживать NULLS, но хотите, чтобы их игнорировали при сравнении равенства только NON NULL COLUMNS –

+0

Не добавляйте его в предложение where. Либо измените ваш оператор IF, либо перейдите в оператор CASE, который может быть немного легче следовать. –

0

Майкла Approch верно. я буду использовать в MSSQL следующее. не уверен syntex в MySql. выбрать случай, когда ((column1 = column2) И (column1 = колонка3) и (column1 = column4) и (column1 = column5) ) то 'же' ELSE 'Different' конец как «ValueStatus ' FROM tableName

+0

Да, я также предпочитаю 'case' (у mysql есть и его), но часть интереса была условием. –

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