フィールド データによる MySQL 結果のグループ化: 包括的なアプローチ
MySQL データベース内のデータを整理する場合、多くの場合、結果に基づいてグループ化することが必要になります。特定のフィールド値について。これは、SQL クエリまたは PHP コードを使用して実現できます。
SQL クエリの使用
最初の例では、「グループ」に基づいてデータをグループ化します。
SELECT Group, GROUP_CONCAT(Name) AS Names FROM table_name GROUP BY Group
このクエリは、GROUP_CONCAT() 関数を使用して各グループに関連付けられたすべての名前を連結し、「Group」フィールドによってグループ化された結果を返します。
PHP の使用
PHP を使用したい場合は、次のようにデータベースに接続してクエリを実行できます:
<code class="php">$dbc = new MySQLi(DBHOST, DBUSER, DBPASS, DB); $result = $dbc->query("SELECT Group, GROUP_CONCAT(Name) AS Names FROM table_name GROUP BY Group"); while ($row = $result->fetch_assoc()) { $names = explode(",", $row["Names"]); echo "<tr><td>{$row["Group"]}</td><td>{$names[0]}</td></tr>"; // Print the first name foreach ($names as $name) { // Print remaining names echo "<tr><td></td><td>{$name}</td></tr>"; } }</code>
複数のテーブルを含むグループのネスト
複数のテーブルと追加の「coef」値があるより複雑な例の場合は、ネストされたクエリまたは SQL と PHP の組み合わせを使用して、目的の結果を達成できます。
考えられる PHP ソリューション
このシナリオで考えられる PHP ソリューションは次のとおりです:
<code class="php">$dbc1 = new MySQLi(DBHOST, DBUSER, DBPASS, DB1); $dbc2 = new MySQLi(DBHOST, DBUSER, DBPASS, DB2); $groups_query = "SELECT Group, GROUP_CONCAT(Name) AS Names FROM table1 GROUP BY Group"; $coefs_query = "SELECT meta_value, title, group FROM table2"; $groups_result = $dbc1->query($groups_query); $coefs_result = $dbc2->query($coefs_query); while ($group = $groups_result->fetch_assoc()) { echo "<tr><td>{$group["Group"]}</td><td>{$group["Names"]}</td></tr>"; $coefs_result->data_seek(0); // Reset pointer to beginning of coefs result set while ($coef = $coefs_result->fetch_assoc()) { // Loop through coefs result set if ($coef["group"] == $group["Group"]) { echo "<tr><td></td><td>{$coef["title"]}</td><td>{$coef["meta_value"]}</td></tr>"; } } }</code>
このソリューションは、SQL クエリを組み合わせて取得しますグループと名前を取得し、PHP を使用して結果をループし、2 番目のテーブルから coef とタイトルを取得します。
以上がMySQL の結果をフィールド データごとにグループ化する方法: 包括的なガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。