sql >> Databasteknik >  >> RDS >> Mysql

PHP MySQL mysql_fetch_assoc med arraynycklar som kännetecknas av "som" beteckningar

Så länge du använder * jokertecken kommer du att hitta kolumner med samma namn kommer att skriva över samma nycklar i din associativa array.

Du måste ge kolumnalias till kolumner från minst en av tabellerna:

select t1.*, t2.col1 as t2col1, t2.col2 as t2col2, ...
from table as t1 LEFT JOIN table as t2 ON t1.id=t2.rank

Annars kan du använda jokertecknet, men hämta raden som en ordningsmatris:

$row = mysql_fetch_array($result, MYSQL_NUM);
echo $row[4];

Angående din kommentar:SQL har bara * jokertecken som betyder "alla kolumner från en given tabell, med deras naturliga namn." Du måste alias kolumner uttryckligen, kolumn för kolumn.

Undantag:Om du använder SQLite finns det en pragma full_column_names alternativ som gör att resultatuppsättningen returnerar kvalificerade kolumnnamn, så att du kan använda * men nycklarna kommer tillbaka med prefixet med tabellaliasen. Detta är SQLite-specifik och icke-standard SQL.




  1. Får MySQL-syntaxfel efter att ha skickat formuläret

  2. Dela upp varchar i separata kolumner i Oracle

  3. Visar alla tabellnamn i php från MySQL-databasen

  4. MySQL:kolla vilken version:32 bitar eller 64 bitar?