MySQL で配列データを効率的に保存およびクエリするにはどうすればよいですか?
Nov 29, 2024 am 01:04 AMMySQL への配列の保存: 代替アプローチ
単一の MySQL フィールドにデータの配列を保存する方法の問題は、長い間困惑していました。開発者。 Serialize() と unserialize() は解決策を提供する可能性がありますが、クエリ性が犠牲になります。
リレーショナル データの調査
MySQL に配列を格納する最良のアプローチは、調査することです。リレーショナル データを取得し、それに応じてスキーマを変更します。配列を 1 つのフィールドに詰め込む代わりに、配列の内容を収容できるテーブルを作成することを検討してください。
テーブル構造の例
たとえば、次のようにするとします。ネストされた配列の配列がある:
$a = array( 1 => array( 'a' => 1, 'b' => 2, 'c' => 3 ), 2 => array( 'a' => 1, 'b' => 2, 'c' => 3 ), );
この場合、次のようなテーブルを作成します。 this:
CREATE TABLE test ( id INTEGER UNSIGNED NOT NULL, a INTEGER UNSIGNED NOT NULL, b INTEGER UNSIGNED NOT NULL, c INTEGER UNSIGNED NOT NULL, PRIMARY KEY (id) );
レコードの挿入と取得
テーブルに配列を格納するには、挿入クエリを使用できます:
foreach ($t as $k => $v) { $query = "INSERT INTO test (id," . implode(',', array_keys($v)) . ") VALUES ($k," . implode(',', $v) . ")"; $r = mysql_query($query,$c); }
レコードを取得するには、選択クエリを使用できます:
function getTest() { $ret = array(); $c = connect(); $query = 'SELECT * FROM test'; $r = mysql_query($query, $c); while ($o = mysql_fetch_array($r, MYSQL_ASSOC)) { $ret[array_shift($o)] = $o; } mysql_close($c); return $ret; }
これこのアプローチにより、データベース内の配列データのクエリと操作が簡単になります。
以上がMySQL で配列データを効率的に保存およびクエリするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

人気の記事

人気の記事

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Alter Tableステートメントを使用してMySQLのテーブルをどのように変更しますか?

Linuxでmysqlを実行します(phpmyAdminを使用してポッドマンコンテナを使用して/なし)

MACOSで複数のMySQLバージョンを実行する:ステップバイステップガイド

共通の脆弱性(SQLインジェクション、ブルートフォース攻撃)に対してMySQLを保護するにはどうすればよいですか?

MySQL接続用のSSL/TLS暗号化を構成するにはどうすればよいですか?
