3

いくつかのJsonオブジェクトを含む既存のMySQLテーブルから、Jsonなしで新しいMySQLビューを作成しようとしています。表1は現在のテーブルです。表2は、表1から派生した新しいMySQLビューです。表2の内容は、常に表1の内容を反映します。違いは構造だけです。

以下は、実際には20を超える列があるコンテキスト例の簡略化された表です。

表1(3列)

user_id | name |          params
---------------------------------------------
   1    | john |{"age":"26","gender":"male"}
   2    | amy  |{"age":"28","gender":"female"}

表2(4列)

user_id | name | age | gender
-----------------------------
   1    | john | 26  | male
   2    | amy  | 28  | female

データフローは次のようになります。ユーザーはいつでもサードパーティのカスタムフォームからデータを入力し、表1に保存します。ただし、データはいつでも表2の形式から取得する必要があります。

SQLクエリのみを使用してこれを実現するにはどうすればよいですか?前もって感謝します。これは確かに、多くの開発者が新しい標準としてJsonに対処するのに役立ちます。乾杯!

4

1 に答える 1

2

上記のtable2を想定すると、文字列関数のかなり醜い組み合わせでこれを行うことができます。

SELECT user_id,name,
substring_index(substring(params,locate('age":"',params)+6),'"',1) as age 
from table_2

性別についても同じパターンに従うことができます。

これは、JSONのフォーマットの一貫性に基づいて少し壊れやすくなっています。

ドキュメントは次の場所で表示できます:MySQLドキュメント

于 2012-10-21T14:55:45.160 に答える