JSON データフィールドをサポートする MYSQL 5.7.11 を使用しています。
製品の価格履歴を保存するテーブルの 1 つに JSON フィールドがあります。
JSON 構造 サンプル:
[{"da": "2016-05-03 08:32", "pr":15.90}]
[{"da": "2016-03-22 09:02", "pr":14.40}]
[{"da": "2016-03-15 12:08", "pr":40.00}, {"da": "2016-06-28 10:32", "pr":42.00}]
[{"da": "2016-03-29 02:39", "pr":13.90}]
[{"da": "2016-05-03 08:38", "pr":17.90},{"da": "2016-07-19 10:18", "pr":26.80},{"da": "2016-07-19 14:20", "pr":24.80}]
ご覧のとおり、行内に複数の JSON 配列を含めることができます。サンプルの各 JSON 行は、異なる製品を表しています。最初の ROW の価格 15.90 は APPLE、2 番目の ROW 14.40 は ORANGE、3 番目の 40.00 と 42.00 は BANANA です。これを明確にするためだけに。
私が探しているのは、日付の範囲を検索できるようにすることです。
日付 A から日付 B までのすべての製品の価格履歴を取得するようにします。
テスト目的で、次のようなことを試みました。
select json_extract(json_price_history, '$.pr')=13.90 from products
しかし、常に NULL だけで多くの行が返されました。
どんな助けでも大歓迎です...