sql >> Databáze >  >> RDS >> Mysql

PHP MySQL mysql_fetch_assoc s klíči pole odlišenými označením 'as'

Pokud používáte * zástupný znak, zjistíte, že sloupce se stejným názvem přepíší stejné klíče ve vašem asociativním poli.

Sloupcům z alespoň jedné z tabulek musíte přiřadit aliasy:

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

Nebo můžete použít zástupný znak, ale načíst řádek jako řadové pole:

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

K vašemu komentáři:SQL má pouze * zástupný znak znamenající "všechny sloupce z dané tabulky podle jejich přirozených jmen." Musíte alias sloupců explicitně, na základě sloupce po sloupci.

Výjimka:Pokud používáte SQLite, existuje pragma full_column_names možnost, díky které bude sada výsledků vracet kvalifikované názvy sloupců, takže můžete použít * ale klíče se vrátí s předponou s aliasy tabulky. Toto je SQLite specifické a nestandardní SQL.




  1. LOAD_FILE vrátí hodnotu NULL

  2. mysqldump:Při zápisu došlo k chybě 32

  3. 10 otázek k rozhovoru s databází MySQL pro začátečníky a mírně pokročilé

  4. Může někdo pomoci vysvětlit, proč je nepoužívání SQL JOIN špatným postupem?