2011-05-27 87 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;