0

(bill_plans)在表中添加了一个新的 JSON 数据类型列。现在我想像这样更新bill_plans

[{ "cycle": 1, "fee": 1000}, { "cycle": 3, "fee": 2800}, { "cycle": 10, "fee": 10000} ]

我成功创建了该列,并且还能够更新 bill_plans 列。

该表包含bill_cycle并且fees也作为现有列,所以我想更新这样的bill_plans

[{ "cycle": value from the bill_cycle column, "fee": value from the fees column}, { "cycle": value from the bill_cycle column, "fee": value from the fees column}]

简单的更新查询是这样的

update  coaching_class_entries set bill_plans =  ('[{"cycle": 1, "fee": 1000}]') where id = 1;

但现在我无法理解如何bill_plans从表的现有列更新

4

1 回答 1

3

MySQL 具有预定义的函数来对 JSON 数组和对象执行操作。

您可以使用以下查询来实现您的结果。

方法 1 使用通用语法

UPDATE coaching_class_entries     
  SET bill_plans = '[ {"cycle": 1, "fee": 1000 } ]'

在这种情况下,您可能需要根据列中的数据更新值。您可以使用CONCAT运算符来形成 json 字符串

UPDATE coaching_class_entries     
  SET bill_plans = CONCAT('[{"cycle":"', bill_cycle, '","fee":"', fees, '"}]')

方法 2 使用 JSON 函数

UPDATE coaching_class_entries     
  SET bill_plans = JSON_ARRAY(JSON_OBJECT("cycle", bill_cycle, "fee", fees))

您可以在此处参考完整的文档https://dev.mysql.com/doc/refman/5.7/en/json.html

于 2018-03-12T08:10:12.043 回答