ホームページ >データベース >mysql チュートリアル >PDO クエリ結果のインデックスとして列の値を使用するにはどうすればよいですか?
PDO を使用した結果のインデックスとして列の値を使用する
データベース プログラミングの領域では、クエリの結果に必要な情報が必要になることがよくあります。デフォルトの増分アプローチとは異なる方法でインデックスを作成する必要があります。このクエリで示されているような特定のシナリオは、よりクリーンで効率的なソリューションの必要性を示しています。
クエリ:
この例は、「brands」という名前の SQL テーブルに関するものです。 ' 列「id」、「name」、「url」があります。中に含まれるデータセットは次のようになります:
1, Solidfloor, solidfloor 2, Quickstep, quickstep 4, Cleanfloor, cleanfloor 5, Blue Dolphin, blue-dolphin 6, Krono, krono 8, Meister, meister
問題ステートメント:
これらのレコードをすべてフェッチすると、通常、増分インデックスを持つ配列が生成されます。ただし、代わりに「id」列を使用してこれらの配列にインデックスを付ける必要があります。結果セットを介したブルート フォース ループは実行可能なオプションですが、最適なオプションではありません。
PDO の独自のソリューション:
PDO は、PDO を介して優れたソリューションを提供します:: FETCH_UNIQUE フェッチ モード。このモードを使用すると、SELECT 句で定義された最初のフィールドによって結果配列にインデックスを付けることができます。この例では、「*」を使用すると、「id」フィールドになります。
コード実装:
$data = $pdo->query('SELECT * FROM brands')->fetchAll(PDO::FETCH_UNIQUE);
出力形式:
その結果、インデックスが「id」値。たとえば、結果は次のようになります。
1 => array( 'name' => 'Solidfloor', 'url' => 'solidfloor', ), 2 => array( 'name' => 'Quickstep', 'url' => 'quickstep', ), 4 => array( 'name' => 'Cleanfloor', 'url' => 'cleanfloor', )
PDO::FETCH_UNIQUE を利用すると、面倒なループ操作に頼ることなく、目的のインデックス作成をエレガントに実現できます。
以上がPDO クエリ結果のインデックスとして列の値を使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。