代码之家  ›  专栏  ›  技术社区  ›  Sonjoy Datta

JSON更新MySQL表中的单个值

  •  1
  • Sonjoy Datta  · 技术社区  · 6 年前

    我在MySQL中有一个JSON数组 payment details

    JSON数组

    {"items":[{"ca_id":18,"appointment_date":"2018-09-15 15:00:00","service_name":"Software Installation / Up-gradation","service_price":165}],"coupon":{"code":"GSSPECIAL","discount":"10","deduction":"0.00"},"subtotal":{"price":165,"deposit":0},"tax_in_price":"included","adjustments":[{"reason":"Over-time","amount":"20","tax":"0"}]}
    

    我需要更新 2018-09-15 15:00:00 2018-09-28 15:00:00 .

    2 回复  |  直到 6 年前
        1
  •  2
  •   Tim Biegeleisen    6 年前

    下面是一种纯粹的MySQL-JSON方法:

    UPDATE yourTable
    SET col = JSON_REPLACE(col, '$.items[0].appointment_date', '2018-09-28 15:00:00');
    

    items ,然后更新 appointment_date

    下面是一个演示,显示JSON替换语法/逻辑正在工作:

    Demo

    但是,您也可以在PHP层中完成这个JSON工作。在PHP中这样做可能更有意义。

        2
  •  0
  •   user9628338 user9628338    6 年前

    如果要在php中执行此操作,请执行以下步骤:

    1. 从表中选择相应的列
    2. json_decode 将字符串转换为数组
    3. 现在您有了json对象,应用您的修改
    4. 使用 json_encode 将json对象转换回字符串