Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

PHP MySQL mysql_fetch_assoc com chaves de array distinguidas por designações 'as'


Contanto que você esteja usando o * curinga, você encontrará colunas com o mesmo nome que substituirão as mesmas chaves em sua matriz associativa.

Você deve fornecer aliases de coluna para colunas de pelo menos uma das tabelas:
select t1.*, t2.col1 as t2col1, t2.col2 as t2col2, ...
from table as t1 LEFT JOIN table as t2 ON t1.id=t2.rank

Ou então você pode usar o curinga, mas buscar a linha como uma matriz ordinal:
$row = mysql_fetch_array($result, MYSQL_NUM);
echo $row[4];

Re seu comentário:SQL tem apenas o * curinga que significa "todas as colunas de uma determinada tabela, por seus nomes naturais". Você deve aliasar as colunas explicitamente, coluna por coluna.

Exceção:se você usa SQLite, há um pragma full_column_names opção que faz com que o conjunto de resultados retorne nomes de coluna qualificados, para que você possa usar * mas as chaves voltam prefixadas com os aliases da tabela. Esse é um SQL específico e não padrão do SQLite.