Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MariaDB:Kann ich doppelte Spaltennamen abrufen, ohne „AS“ zu verwenden?

Wenn Sie mehrere Spalten in einer Ergebnismenge mit demselben Namen haben, gibt sogar mysql alle zurück, aber sie haben auch in der Ergebnismenge denselben Namen, es sei denn, Sie verwenden einen Feld-Alias. hier ein sqlfiddle erstellt, um es zu beweisen . Wahrscheinlich kann Ihre Clientbibliothek nicht zwischen den beiden Spalten unterscheiden. Dies ist beispielsweise ein bekanntes Problem bei Laravel.

Sowohl mysql als auch mariadb erlauben Ihnen, den Feldnamen Tabellennamen voranzustellen, aber der Tabellenname wird nicht als Teil des Feldnamens zurückgegeben. Die meisten Clientbibliotheken sind jedoch in der Lage, Metadaten für die Spalten in einer von mysql / mariadb zurückgegebenen Ergebnismenge abzurufen, die den Tabellennamen für nicht berechnete Spalten enthalten würde. Siehe zum Beispiel mysqli_fetch_field_direct() Funktion.

Sie können den aus den Metadaten abgerufenen Tabellennamen verwenden, um festzustellen, welche ID-Spalte zu welcher Tabelle gehört.