sql >> Base de Datos >  >> RDS >> Mysql

PHP MySQL mysql_fetch_assoc con claves de matriz distinguidas por designaciones 'as'

Siempre que esté utilizando el * comodín, encontrará que las columnas del mismo nombre sobrescribirán las mismas claves en su matriz asociativa.

Debe proporcionar alias de columna a las columnas de al menos una de las tablas:

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

O bien, puede usar el comodín, pero obtenga la fila como una matriz ordinal:

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

Re tu comentario:SQL tiene solo el * comodín que significa "todas las columnas de una tabla dada, por sus nombres naturales". Debe alias de columnas explícitamente, columna por columna.

Excepción:si usa SQLite, hay un pragma full_column_names opción que hace que el conjunto de resultados devuelva nombres de columna calificados, por lo que puede usar * pero las claves vuelven con el prefijo de los alias de la tabla. Este es un SQL no estándar y específico de SQLite.