Я ищу способ упорядочить результаты 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 всегда НЕ ПУСТО (NULL), поэтому добавление его к счетчику не изменит результатов.
У кого-нибудь есть идеи по этому поводу, которые не предполагают разбора PHP результата в новый массив?Я пытаюсь сохранить часть обработки на уровне БД.
ORDER BY IF(`a` IS NULL, 0, 1) + IF(`b` IS NULL, 0, 1) ... DESC
Где a, b, ... - имена полей (да, вам нужно перечислить их все вручную)
a
b
PS: если вы не знаете разницу между 0 и NULL, то это:
0
NULL
ORDER BY `a` + `b` ... DESC
будет достаточно для вас