Есть ли способ заказать по столбцу, если он действительно существует?Заказ от IF EXISTS
т.е. SELECT * ORDER BY IF(EXISTS(order_column), order_column ASC, name_column DESC)
Спасибо!
Есть ли способ заказать по столбцу, если он действительно существует?Заказ от IF EXISTS
т.е. SELECT * ORDER BY IF(EXISTS(order_column), order_column ASC, name_column DESC)
Спасибо!
Вы можете использовать ISNULL Вместо
ORDER BY
ISNULL(order_column, name_column)
Не знаю, как вы бы добавить DESC или ASC Тхо ...
Нет, EXISTS должен быть использован только с подзапроса и в ИНЕКЕ , Может быть, вы более конкретны? Что вы подразумеваете под «существующей колонкой»?
Вот мое непроверенное предположение:
ORDER BY IF(ISNULL(order_column), "", order_column) ASC, name_column DESC
Если order_column является NULL, пустая строка будет заменена, которая не влияет на виде. Если это не NULL, оно будет отсортировано перед столбцом имени.
Если Mysql не позволит использовать выражение в ORDER BY, вы всегда можете создать «искусственный» столбец в SELECT:
SELECT
IF (ISNULL(order_column), " ", order_column)
AS my_order_column,
name_column
FROM table
ORDER BY my_order_column ASC, name_column DESC.
Я придумал что-то подобное себе, но так как мне нужно сортировать по порядку_колонке, только если он действительно существует, это не сработает ... – Mission
Один из нас плохо понимает. Можете ли вы привести нам пример некоторых возможных данных и результат, который вы ожидаете увидеть? –
Лучший способ сделать это создать выражение, оцените, существует ли это как часть запроса выбора. Вы можете иметь выражение обратный order_column или name_column
РЕАЛИЗАЦИЯ зависит от SQL, который вы используете, но здесь вы можете normallly нам IIF (...), но вы, возможно, потребуется проверить нуль
Что именно вы имеете в виду : Вы хотите проверить, существует ли столбец таблицы, или если он содержит значения? Обычно 'EXISTS' используется в сочетании с подзапросами, чтобы проверить, возвращает ли суб-запрос какие-либо записи. Если вы хотите проверить, существует ли фактический столбец, вы можете сделать это с помощью 'SHOW COLUMNS'. –
и, пожалуйста, объясните, что вы подразумеваете под «если оно существует», если я принимаю буквальное значение, если столбец не существует, запрос не будет выполняться, но приведет к ошибке. Если вы имеете в виду «если значение в столбце не равно нулю», то, пожалуйста, отредактируйте свой вопрос, чтобы сказать это. –
Я хочу проверить, действительно ли он существует. Извините за то, что я не понимаю. – Mission