sql >> データベース >  >> RDS >> Mysql

PHPMySQLmysql_fetch_assocと「as」指定で区別される配列キー

    *を使用している限り ワイルドカードを使用すると、同じ名前の列が連想配列の同じキーを上書きすることがわかります。

    少なくとも1つのテーブルの列に列エイリアスを指定する必要があります:

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

    または、ワイルドカードを使用できますが、行を序数配列としてフェッチします:

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

    コメントを再確認してください:SQLには*だけがあります ワイルドカードは、「特定のテーブルのすべての列を、その自然な名前で」意味します。列ごとに、明示的に列のエイリアスを作成する必要があります。

    例外:SQLiteを使用する場合は、 pragma full_column_namesがあります。 結果セットが修飾された列名を返すようにするオプション。これにより、*を使用できます。 ただし、キーにはテーブルエイリアスのプレフィックスが付いて戻ってきます。これはSQLite固有の非標準SQLです。




    1. Log()がPostgreSQLでどのように機能するか

    2. 必須フィールドに結果がありません

    3. プロアクティブなSQLServerヘルスチェック、パート2:メンテナンス

    4. バックエンドデータベースが新しい場所に移動した後、Access2016でリンクされたテーブルを更新する方法