为什么此MYSQL CASE无法正常工作?

时间:2018-07-25 08:54:02

标签: mysql case

SELECT * FROM sample WHERE keywords LIKE '%face food%'
ORDER BY
  CASE
    WHEN keywords LIKE '%,face food,%' THEN 1
    WHEN keywords LIKE '%face food%' THEN 2
    WHEN soundex(`keywords`) LIKE CONCAT('%',soundex('face food'), '%') THEN 3
    WHEN keywords LIKE '%,facefood,%' THEN 4
    WHEN keywords LIKE '%facefood%' THEN 5
    WHEN soundex(`keywords`) LIKE CONCAT('%',soundex('facefood'), '%') THEN 6
  END

2 个答案:

答案 0 :(得分:0)

@Bhuvnesh Kumar ...

只需添加其他语句

这是示例之一。...

SELECT 
    customerName, state, country
FROM
    customers
ORDER BY CASE
    WHEN state IS NULL THEN country
    ELSE state
END

答案 1 :(得分:0)

您错过了查询的最后一个else子句

SELECT * FROM sample WHERE keywords LIKE '%face food%'
ORDER BY
  CASE
    WHEN keywords LIKE '%,face food,%' THEN 1
    WHEN keywords LIKE '%face food%' THEN 2
    WHEN soundex(`keywords`) LIKE CONCAT('%',soundex('face food'), '%') THEN 3
    WHEN keywords LIKE '%,facefood,%' THEN 4
    WHEN keywords LIKE '%facefood%' THEN 5
    WHEN soundex(`keywords`) LIKE CONCAT('%',soundex('facefood'), '%') THEN 6
   Else 7
  END
相关问题