2011-05-27 27 views
7

Bir açılır menüde seçenekler/değerler döndürmek için bir SQL sorgusu gerektiren bir CMS'ye sahibim ... genellikle SQL sorgusundaki satırları tablodan döndürür ve açılır menü seçeneklerini doldurur. Bazen sadece açılır menüde iki statik seçenek olmasını istiyorum ve bu iki değişmeyen öğeyi yönetmek için bir tablo oluşturmak istemiyorum.MySQL statik dizeleri döndürür

Sorularım: Bir tabloyu sorgulamayan ancak bir tabloyu sorgulıyormuş gibi bazı statik sonuçları döndürecek bir MySQL sorgusu var mı?

SELECT value FROM `fake_table` 

Ve aşağıdaki dönmek:

İdeal buna benzer (ama statik) bir şey istiyorum

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

Teşekkür herhangi bir yardım için şimdiden! Sabit bir değer seçmek için sözdizimi varsayarsak

+0

statik değerler değilseniz, neden sadece koda bunları html içine? Ardından veritabanını sonraki

+0

Sorgu sonucunun boş olup olmadığını kontrol edin ve varsayılan davranışı döndürün – Ibu

+1

Sabit kodlanmış değerler kullanın ve kendinize sahte bir MySQL sorgusunun genel giderlerini kaydedin. –

cevap

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

MSSQL olarak MySQL aynıdır:

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 sütun sahte değerlerin her zaman sonuç kümesinin başında görünmesini sağlar, ama bu gerçek değerler değerlerine göre sıralanır. (UNION aksine) o resultsets birleşince UNION ALL çiftleri ortadan kaldırmak için denemez

Not. Bu, statik değerlerinizin gerçek tablodaki herhangi bir değeri çoğaltmayacağının kabul edilmesiyle meşrudur. UNION ALL, biraz daha iyi performansa sahip olduğundan (bu durumda bir fark yaratma olasılığı düşük, genel bir kuraldır), bu akılda tutulmalıdır.

Ayrıca Not: @Marc B yorumlardaki bahisler gibi, yerine veritabanında bu mantık koyma, sunumunuz tabakasında statik değerlerini koymak endişeleri daha iyi ayrılması olabilir.

0

tek sütun olarak bir dize ve iki sütun dönersek:

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