MySQL CASE WHEN在案例中

时间:2015-07-01 15:07:22

标签: mysql sql select case

汽车

Make  |  Model  |  Year   |  Color  
Honda |  Accord |  12     |  Red
Lexus |    IS   |  14     |  Blue

我收到这样的文件,并且在将其发送到php脚本之前必须使确定的标题行与参数匹配。

我目前有一个SELECT CASE WHEN,用于检查代码中的其他错误,例如空白:

SELECT
CASE
WHEN a.Make = '' THEN '**BLANK**'
ELSE a.Make
END as Make,

SELECT中是否可以使用SELECT来确保收到的文件头(和标题)与我们的标题匹配?

3 个答案:

答案 0 :(得分:1)

纠正我。但根据我的理解,您希望有一个包含与列标题相同名称的记录。

当a.Make =''那么' BLANK 时的情况      当a.Make<> 'make'或a.Model<> '模型'然后'没有'      什么时候 。 .. ..     ELSE a.Make  ......

答案 1 :(得分:0)

我认为没有必要这样做。在这种情况下你也可以在这里提一下你的conds。像

这样的东西
CASE
WHEN a.Make = '' THEN '**BLANK**'
ELSE a.Make
WHEN a.Make <> '' AND  a.Make <> 'Make' THEN 'ANOTHER'
ELSE a.make
WHEN a.Model <> '' AND  a.Model <> 'Model' THEN 'ANOTHER'
ELSE a.Model
..... etc.

我认为这个脚本可以为你效劳。

答案 2 :(得分:0)

也许你应该尝试类似的东西:

SET @make := (SELECT a.Make FROM cars a WHERE ...);
SET @model := (SELECT a.Model FROM cars a WHERE ...);

IF @make = 'Make' AND @model = 'Model' AND ... THEN
#continue your script
ELSE
#end your script
END IF;