搜索

首页  >  问答  >  正文

正确的语法来在Node中查询MYSQL中的JSON_SET

<p>我需要从Node设置/更新MYSQL表中的JSON数组,我有这个查询,它会抛出一个<code>Invalid JSON path expression</code>错误。 例如,我想要找到键为<code>2022-01-03</code>的对象,如果存在,则将其值更新为<code>O 08:00</code></p> <pre class="brush:php;toolbar:false;">UPDATE allemployees SET schedule = JSON_SET(schedule, '$.2022-01-03', 'O 08:00') WHERE name_cyr = 'John Doe'</pre> <p>我的表中的JSON如下:</p> <pre class="brush:php;toolbar:false;">[{"2022-01-03": "H 08:00"}, [{"2022-01-04": "H 08:00"}] ]</pre></p>
P粉903052556P粉903052556470 天前493

全部回复(1)我来回复

  • P粉851401475

    P粉8514014752023-09-01 14:07:18

    UPDATE allemployees
    SET schedule = JSON_SET(schedule, '$[0]."2022-01-03"', 'O 08:00') 
    WHERE name_cyr = 'John Doe';
    

    https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=2c59600049b4dfc1675c444a6da578bb

    1. 路径"2022-01-03"包含破折号,必须用双引号括起来。

    2. 要设置的值不是上级值,而是明确数组元素的组成部分。

    回复
    0
  • 取消回复