2011-07-12 52 views
5

Kullanıcının birden çok tablo arasında bir alan seçebildiği bir komut dosyası var. Tüm satırları almak için Union kullanır. Şu anda, her tabloda belirli bir alanın olup olmadığını belirtmek için bir eşleme dizim var ve eğer yoksa, her şeyi kontrol altında tutmak için "" as field_name kullanıyor.Mysql'de varolmayan bir sütun için sorgulamanın bir yolu var mı?

COALESCE gibi bir sorgudaki olası olmayan bir sütuna başvuruda bulunmanın bir yolu olup olmadığını merak ediyorum, böylece sütun yoksa, bir hata atmak yerine, yalnızca bir varsayılan değer döndürür.

cevap

1

kaynaşabilecek hala alan adı anahtarlı gerektirecektir, bu yüzden yardımcı olmaz:

... COALESCE(non_existent_field, NULL) 

hala nedeniyle saha mevcut değil hataya neden olur.

+0

Ben de farkettim. Tüm googling, bunun bir seçenek olmadığını gösteriyor. Gerçekten "eğer varsa" türünü umuyordum. – Anthony

+0

information_schema.tables adresine katılabilir ve bunları temel alabilirsiniz, ancak yeterli kazanç elde edemeyecek kadar çok iş gibi görünüyorsunuz. –

+0

Temel olarak, yeni özel alanlar eklemek için mantık oluşturmak zorunda kalmaya çalışıyorum. Ön uçta, mevcut olan tüm özel alanları (eşleme dizisinde bulunanlar dışında) arar ve kullanıcının özel alanı seçmesine izin verir. Fakat gönderim sırasında, alanın hangi masaya ait olduğunu veya birden fazla tablo üzerinde var olduğunu bulmak için aynı şeyi tekrar yapmak zorundayım. Eğer alan yoksa, hiçbir şey vermezse çok daha kolay olurdu. Ama sanırım bu bir seçenek değil. – Anthony

İlgili konular