MySQL 分层 IF 语句

标签 mysql if-statement sql-order-by

我正在尝试完成这段代码:

ORDER BY IF(j.groups IS NULL OR j.groups = '',  IF(j.title IS NULL, i.title), j.groups)

在英语中:如果存在则首先按 j.groups 排序,如果存在则按 j.title 排序,最后按 i.title 排序。但是上面的方法是行不通的。

最佳答案

试试这个:

ORDER BY IF(j.groups IS NULL OR j.groups = '', IFNULL(j.title, i.title), j.groups);

ORDER BY COALESCE(j.groups, j.title, i.title);

ORDER BY IF(j.groups IS NULL OR j.groups = '', IF(j.title IS NULL, i.title, 1), j.groups);

关于MySQL 分层 IF 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14151286/

相关文章:

C++, 'if' 表达式中的变量声明

java - 为什么单个 "if"比 "switch"慢?

sql - 在 Postgres 中排序

java - 按主键排序

php - MySQL ORDER BY 多列 ASC 和 DESC 未按预期工作

php - 跨 PHP、MySQL 等管理日期的最佳方式是什么?

php - 图片上传无效

mysql - 创建模型的新实例时出错,但使用 Model::Find() 时正常

mysql - 通过浏览器编辑数据库的优雅方式?

java - 为什么没有编译时错误?奇怪 - Java