私はjson形式でフィールドを変更したログを記録するテーブルを持っています。 現在、バージョンと差分ごとにデータ全体を取得してアプリケーションに保存しています。しかし、それはOOMを上げることができるように多くのデータをプルするので、私はdb側でそれをやりたい。mysqlでjsonデータを作成する簡単な方法はありますか?
自己結合によって変更されたレコードを取得することができましたが、jsonで変更されたデータを作成することはできません。
json文字列を生成する方法はありますか?
以下はスキーマです。
私は {「名前」:「更新」}以下のようなJSONを作りたいcreate table A { id int not null primary key auto_increment,
code int not null,
version int not null,
name varcher(10) not null,
content varcahr(10) not null) ;
create table logging (id int not null primary key auto_increment,
version int not null,
code int not null,
changed varcher(1024));
INSERT INTO logging (version, code , changed)
SELECT A2.version, A2.code, ? <- I don't know how create json
FROM A A1 inner join A A2 ON A1.code = A2.code
WHERE A1.version = 1 AND A2.version = 2
AND (A1.name != A2.name OR A1.content != A2.content)
名前場合のみ、名前が {「UPDATED_CONTENT」:「更新」、「コンテンツ」、「名前を」}変更された場合&の内容が変更されました。 (ポストにはサンプルデータとサンプル出力がないとして)私は完全に所望の出力を理解していれば、私はMariaDB 10.0.22
JSONをデータベース側ではなくアプリケーション側でアセンブルすることをお勧めします。 – sylverfyre