我有一个CMS,需要SQL查询来返回下拉列表的选项/值...通常它会从SQL查询中的表中返回行并填写下拉选项。有时我只想在下拉列表中有两个静态选项,并且不想创建整个表来管理这两个不变的项目。
我的问题是:是否有一个MySQL查询不会查询表,但只会返回一些静态结果,就像查询表一样?
理想情况下,我想要类似的东西(但是静态的):
SELECT value FROM `fake_table`
并返回以下内容:
value
//////////////
Option One
Option Two
Option Three
Etc...
提前感谢您的帮助!
答案 0 :(得分:21)
select 'Option One' as Value
union
select 'Option Two' as Value
答案 1 :(得分:2)
假设在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的性能稍好一些(在这种情况下不太可能有所不同,但这是一个很好的一般规则)。 / p>
另请注意:正如@Marc B在评论中提到的那样,将静态值放在表示层中可能会更好地分离关注点,而不是将该逻辑放在数据库中。
答案 2 :(得分:0)
将字符串和两列作为单个列返回:
SELECT CONCAT('example string', column1, column2) AS combined FROM table;