У меня проблема с получением записей из базы данных в конкретном контексте. У меня есть таблица "test". Я хочу, чтобы список был отсортирован драйверами и табличными "драйверами", которые я использую для настройки сортировки списка из таблицы "test".
Мой запрос:
SELECT * FROM test JOIN drivers ON test.driverid=drivers.driverid ORDER BY queno
Таблица "драйверы" выглядит так:
driver | driverid | queno
-------------------
drv1 | 15 | 3
drv2 | 30 | 1
drv3 | 40 | 2
Проблема в том, что в таблице "test" нет значения, присвоенного "driverid", тогда эти результаты перечислены в самом начале. Я хотел бы, чтобы они были перечислены в конце
Как это сделать? спасибо заранее!
Я нашел рабочее решение, где:
MySQL: упорядочить по полю, поместив пустые ячейки в конец
SELECT * FROM test JOIN drivers ON test.driverid=drivers.driverid ORDER BY if(queno = '' or queno is null,1,0), queno
Вы можете сделать первичный ключ driver.driverid (PK) и внешний ключ test.driverid (FK) и обеспечить целостность данных. Это также устранит вашу проблему.
Поместите знак минус (-) перед именем столбца и переключите ASC в DESC или DESC на ASC-порядок (напротив того, что вы хотите).
попробуй это:-
SELECT * FROM test JOIN drivers ON test.driverid=drivers.driverid ORDER BY -queno DESC;
Примечание. - Хотя это может хорошо работать для чисел и дат, это может быть не лучшее решение для сортировки полей с альфа-или буквенно-цифровыми значениями