次のようなカンマ区切りのリストが mysql テーブルに保存されています。
-----------------
|id | list |
-----------------
| 4 |12,45,65,4 |
「リスト」の各番号は、別のテーブルの ID に対応しています。
これらの ID に基づいて他のテーブルをクエリし、「リスト」の番号に関連付けられた行を表示する方法はありますか?
次のようなカンマ区切りのリストが mysql テーブルに保存されています。
-----------------
|id | list |
-----------------
| 4 |12,45,65,4 |
「リスト」の各番号は、別のテーブルの ID に対応しています。
これらの ID に基づいて他のテーブルをクエリし、「リスト」の番号に関連付けられた行を表示する方法はありますか?
現在のスキーマでは効率的な方法ではありません。これを行うための正しく最も効率的な方法は、次のように複数の行を保持するようにスキーマを変更することです。
-----------------
|id | list |
-----------------
| 4 | 12 |
| 4 | 45 |
| 4 | 65 |
| 4 | 4 |
次に、操作を使用して、他のテーブルの関連するすべての行にJOIN
接続します。4
これはデータベースの正規化と呼ばれ、データベース設計において非常に重要なトピックです。リレーショナル データベース システムは、この種の問題を効率的に処理するように構築されています。