Mysql
 sql >> Database >  >> RDS >> Mysql

MariaDB:posso recuperare nomi di colonne duplicati senza usare "AS"

Se hai più colonne in un set di risultati con lo stesso nome, anche mysql le restituisce tutte, ma avranno lo stesso nome anche nel set di risultati, a meno che tu non utilizzi un alias di campo. Creato un sqlfiddle per dimostrarlo qui . Probabilmente, la tua libreria client non è in grado di distinguere tra le 2 colonne. Questo è un problema noto, ad esempio con laravel.

Sia mysql che mariadb consentono di anteporre ai nomi dei campi i nomi delle tabelle, ma il nome della tabella non viene restituito come parte del nome del campo. Tuttavia, la maggior parte delle librerie client è in grado di recuperare i metadati per le colonne in un set di risultati restituito da mysql/mariadb, che includerebbe il nome della tabella per le colonne non calcolate. Vedi ad esempio mysqli_fetch_field_direct() funzione.

Puoi utilizzare il nome della tabella recuperato dai metadati per determinare quale colonna ID appartiene a quale tabella.