我正在寻找一种方法,通过值不为空的列的计数来对 MySQL 结果进行排序。所以,
[id] [1] [1] [0] [1] [1] = 4
[id] [0] [1] [1] [1] [0] = 3
[id] [0] [0] [0] [1] [1] = 2
[id] [1] [0] [0] [0] [0] = 1
在上面的例子中,我忽略了 ID 列,但实际上我不在乎。 ID 始终不为 NULL,因此将其添加到计数不会改变结果。
任何人对此有任何想法,不涉及将结果解析为新数组吗?我试图将处理部分保留在数据库级别。
ORDER BY IF(`a` IS NULL, 0, 1) + IF(`b` IS NULL, 0, 1) ... DESC
Where a
, b
, ... 是字段的名称(是的,您需要手动枚举它们)
PS:如果你不知道两者之间的区别0
and NULL
this:
ORDER BY `a` + `b` ... DESC
对你来说就足够了
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)