mysql - 为什么这个 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
解决方案
您错过了最后一个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
推荐阅读
- c++ - 使用 openCV 将视频写入磁盘时出错
- cmd - ╧、╤ 和 ╪ 在 Windows 7 cmd 控制台上显示错误
- python - 更改后如何保存字典?
- python - 在 PyCharm 上找不到解释器
- javascript - 有没有办法在 2 个单独的 HTML 时执行 Javascript 函数
- csv - 使用 awk 将字段除以上一行中的字段
- powerbi - M 代码在多列中添加值
- ios - 一种或多种地图样式加载失败 - iOS Google Maps SDK
- ruby-on-rails - Rails JS 模板仍然有效吗?
- typescript - 什么测试框架用于编写将在浏览器中执行的打字稿单元测试?