MySQL возвращает статические строки - PullRequest
8 голосов
/ 27 мая 2011

У меня есть CMS, которая требует SQL-запрос для возврата параметров / значений для раскрывающегося списка ... обычно она возвращает строки из таблицы в SQL-запросе и заполняет раскрывающиеся параметры. Иногда я просто хочу иметь два статических параметра в раскрывающемся списке и не хочу создавать целую таблицу для управления этими двумя неизменными элементами.

Мои вопросы: существует ли запрос MySQL, который не будет запрашивать таблицу, а будет просто возвращать некоторые статические результаты, как если бы он запрашивал таблицу?

В идеале я хотел бы что-то похожее на это (но статично):

SELECT value FROM `fake_table` 

И вернуть следующее:

value
//////////////
Option One
Option Two
Option Three
Etc...

Заранее спасибо за любую помощь!

Ответы [ 3 ]

21 голосов
/ 27 мая 2011
select 'Option One' as Value
union
select 'Option Two' as Value
2 голосов
/ 27 мая 2011

Предполагается, что синтаксис для выбора постоянного значения в MySQL такой же, как и в MSSQL:

SELECT 'fake_value_1' AS value, 1 AS sort
UNION ALL
SELECT 'fake_value_2', 2
UNION ALL
SELECT value, 3 FROM table
ORDER BY sort, value

Столбец sort гарантирует, что поддельные значения всегда появляются в начале набора результатов, но фактические значения сортируются по их значению.

Обратите внимание , что UNION ALL (в отличие от UNION) не будет пытаться устранить дубликаты при объединении наборов результатов. Это законно, если предположить, что ваши статические значения не будут дублировать какие-либо значения в фактической таблице - это стоит иметь в виду, поскольку UNION ALL имеет немного лучшую производительность (вряд ли это будет иметь значение в этом случае, но хорошее общее правило).

Также обратите внимание: Как упоминает @Marc B в комментариях, может быть лучше разделить задачи, чтобы поместить статические значения в слой представления, а не помещать эту логику в базу данных.

0 голосов
/ 11 февраля 2017

Возвращение строки и двух столбцов в виде одного столбца:

SELECT CONCAT('example string', column1, column2) AS combined FROM table;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...