2011-05-27 85 views
7

我有一个CMS,需要一个SQL查询返回的选项/值下拉...通常从表返回行的SQL查询,并在下拉菜单中选择罢了。有时候,我只是想在下拉两个静态选项,不希望创建一个完整的表来管理这两个不变的项目。MySQL的返回静态字符串

我的问题是:有没有一个MySQL查询,将不查询表,但只返回一些静态的结果就好像它是查表?

我非常希望与此类似(但静态)的东西:

SELECT value FROM `fake_table` 

,并返回以下:

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

在此先感谢您的帮助!

+0

如果他们是静态值,为什么不只是硬编码他们进入你的HTML吗?然后使用数据库填写后续的'

+0

检查如果查询结果为空,并返回一个默认行为 – Ibu 2011-05-27 19:20:34

+1

使用硬编码值,并保存自己的伪MySQL查询的开销。 – 2011-05-27 19:26:35

回答

18
select 'Option One' as Value 
union 
select 'Option Two' as Value 
1

假设语法来选择的恒定值是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乙方在评论中提到,它可能是担心把静态值在表示层,而不是把这种逻辑在数据库中更好的分离。

0

返回一个字符串两列为单柱:

SELECT CONCAT('example string', column1, column2) AS combined FROM table;