2011-07-12 26 views
5

我有一個腳本,用戶可以在多個表中選擇一個字段。它使用Union來獲取所有行。現在,我有一個映射數組來指示每個表中是否存在特定字段,如果不存在,則使用"" as field_name來檢查所有內容。有沒有辦法在mysql中查詢可能不存在的列?

我想知道是否有一種方法來引用查詢中可能不存在的列,如COALESCE,這樣如果列不存在,而不是拋出錯誤,它只是返回一個默認值。

回答

1

聚結仍然需要一個字段名,所以它不會幫助:

... COALESCE(non_existent_field, NULL) 

仍然會導致錯誤由於現場不存在。

+0

所以我注意到了。所有使用Google提示這不是一個選項。我真的希望有一個「如果存在」類型的東西。 – Anthony

+0

你可以加入information_schema.tables並以此爲基礎,但看起來很多工作沒有足夠的收穫。 –

+0

基本上,我試圖避免必須構建添加新自定義字段的邏輯。在前端,它會經過並查找所有可用的自定義字段(映射數組中已有的可用字段之外),並允許用戶選擇自定義字段。但是在提交時,我必須再次做同樣的事情才能找出該字段屬於哪個表,或者它是否存在於多個表中。如果該領域不存在,如果它不會返回任何東西,那將會容易得多。但我想這不是一個選項。 – Anthony

相關問題