在MySQL中使用IF进行多列比较

时间:2012-01-26 17:29:42

标签: mysql if-statement

请帮助我在MySQL 5.5中关注if语句。我试图比较列值,看它们是否相等或不同。

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

我也尝试过以下操作,但是,即使所有列都具有相同的值,它也只会将一种类型的结果显示为“不同”。

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

2 个答案:

答案 0 :(得分:2)

应改为column1 = column2 and column1 = column3 and column1 = column4 and column1 = column5

您发生了什么事可能是您将column1column2进行了比较,后者返回了true,然后您将truecolumn3进行了比较,结果为false 1}},将falsecolumn4进行比较,同时评估为false等。

答案 1 :(得分:0)

迈克尔的approch是对的。我将在MSSQL中使用如下。不确定MySql中的syntex。 选择     案例何时         ((column1 = column2)AND          (column1 = column3)和          (column1 = column4)和          (column1 = column5)         )         然后'相同'         ELSE'不同'     以'ValueStatus'结尾 FROM tableName