2011-07-12 7 views
5

Ho uno script in cui un utente può selezionare un campo su più tabelle. Utilizza uno Union per ottenere tutte le righe. In questo momento, ho una matrice di mappatura per indicare se esiste un campo specifico in ogni tabella e, in caso contrario, utilizza "" as field_name per tenere tutto sotto controllo.C'è un modo per interrogare per una possibile colonna inesistente in mysql?

Mi chiedevo se esiste un modo per fare riferimento a una colonna probabilmente inesistente in una query, ad esempio COALESCE in modo che se la colonna non esiste, invece di generare un errore, restituisce semplicemente un valore predefinito.

risposta

1

fondono richiederebbe comunque un nome di campo, quindi non servirebbe:

... COALESCE(non_existent_field, NULL) 

sarà ancora causare un errore a causa del campo non esistente.

+0

Quindi ho notato. Tutto su google suggerisce che questa non è un'opzione. Speravo davvero in un tipo di cosa "se esiste". – Anthony

+0

Potresti unirti a information_schema.tables e partire da quello, ma sembra un sacco di lavoro per non guadagnare abbastanza. –

+0

Fondamentalmente, sto cercando di evitare di dover costruire la logica per aggiungere nuovi campi personalizzati. Sul front-end, passa attraverso e cerca tutti i campi personalizzati disponibili (al di fuori di quelli già disponibili nell'array di mappatura) e consente all'utente di selezionare il campo personalizzato. Ma su submit, devo quindi fare di nuovo la stessa cosa per scoprire a quale tabella appartiene il campo o se esiste su più tabelle. Sarebbe molto più semplice se non restituisse nulla se il campo non esistesse. Ma immagino che non sia un'opzione. – Anthony

Problemi correlati