<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>https://jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>https://jackxiang.com/post//</link>
<title><![CDATA[MySQL 5.7原生JSON格式支持，对于JSON格式堪称完美，修改某个字段的json。]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[数据库技术]]></category>
<pubDate>Fri, 25 Nov 2016 02:09:16 +0000</pubDate> 
<guid>https://jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	背景：在MySQL与PostgreSQL的对比中，PG的JSON格式支持优势总是不断被拿来比较。最主要是json这种东西在做一些物联网时用php结合很有用处。<br/>========================真实实践成功如下所示AddTime：2016-12-4==================================<br/>CREATE TABLE json_test(&nbsp;&nbsp;<br/>id INT,&nbsp;&nbsp;<br/>person_desc TEXT&nbsp;&nbsp;<br/>)ENGINE INNODB;&nbsp;&nbsp;<br/><br/>INSERT INTO json_test VALUES (1,&#039;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#123;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&quot;programmers&quot;: [&#123;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;firstName&quot;: &quot;Brett&quot;,&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;lastName&quot;: &quot;McLaughlin&quot;,&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;email&quot;: &quot;aaaa&quot;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;, &#123;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;firstName&quot;: &quot;Jason&quot;,&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;lastName&quot;: &quot;Hunter&quot;,&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;email&quot;: &quot;bbbb&quot;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;, &#123;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;firstName&quot;: &quot;Elliotte&quot;,&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;lastName&quot;: &quot;Harold&quot;,&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;email&quot;: &quot;cccc&quot;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;],&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&quot;authors&quot;: [&#123;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;firstName&quot;: &quot;Isaac&quot;,&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;lastName&quot;: &quot;Asimov&quot;,&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;genre&quot;: &quot;sciencefiction&quot;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;, &#123;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;firstName&quot;: &quot;Tad&quot;,&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;lastName&quot;: &quot;Williams&quot;,&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;genre&quot;: &quot;fantasy&quot;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;, &#123;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;firstName&quot;: &quot;Frank&quot;,&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;lastName&quot;: &quot;Peretti&quot;,&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;genre&quot;: &quot;christianfiction&quot;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;],&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&quot;musicians&quot;: [&#123;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;firstName&quot;: &quot;Eric&quot;,&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;lastName&quot;: &quot;Clapton&quot;,&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;instrument&quot;: &quot;guitar&quot;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;, &#123;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;firstName&quot;: &quot;Sergei&quot;,&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;lastName&quot;: &quot;Rachmaninoff&quot;,&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;instrument&quot;: &quot;piano&quot;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;]&nbsp;&nbsp;<br/>&#125;&#039;);&nbsp;&nbsp;<br/><br/>ALTER TABLE json_test MODIFY person_desc json;&nbsp;&nbsp;<br/><br/><br/><br/>&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&quot;programmers&quot;:[<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;firstName&quot;:&quot;Brett&quot;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;lastName&quot;:&quot;McLaughlin&quot;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;email&quot;:&quot;aaaa&quot;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;firstName&quot;:&quot;Jason&quot;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;lastName&quot;:&quot;Hunter&quot;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;email&quot;:&quot;bbbb&quot;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;firstName&quot;:&quot;Elliotte&quot;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;lastName&quot;:&quot;Harold&quot;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;email&quot;:&quot;cccc&quot;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;],<br/>&nbsp;&nbsp;&nbsp;&nbsp;&quot;authors&quot;:[<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;firstName&quot;:&quot;Isaac&quot;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;lastName&quot;:&quot;Asimov&quot;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;genre&quot;:&quot;sciencefiction&quot;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;firstName&quot;:&quot;Tad&quot;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;lastName&quot;:&quot;Williams&quot;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;genre&quot;:&quot;fantasy&quot;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;firstName&quot;:&quot;Frank&quot;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;lastName&quot;:&quot;Peretti&quot;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;genre&quot;:&quot;christianfiction&quot;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;],<br/>&nbsp;&nbsp;&nbsp;&nbsp;&quot;musicians&quot;:[<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;firstName&quot;:&quot;Eric&quot;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;lastName&quot;:&quot;Clapton&quot;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;instrument&quot;:&quot;guitar&quot;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;firstName&quot;:&quot;Sergei&quot;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;lastName&quot;:&quot;Rachmaninoff&quot;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;instrument&quot;:&quot;piano&quot;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;]<br/>&#125;<br/><br/><br/><br/><br/><br/>mysql&gt; SELECT id,json_keys(person_desc) as &quot;keys&quot; FROM json_test&#92;G <br/>*************************** 1. row ***************************<br/>&nbsp;&nbsp;id: 1<br/>keys: [&quot;authors&quot;, &quot;musicians&quot;, &quot;programmers&quot;]<br/>1 row in set (0.00 sec)<br/><br/><br/>mysql&gt;&nbsp;&nbsp;SELECT json_extract(AUTHORS,&#039;$.lastName[0]&#039;) AS &#039;name&#039;, AUTHORS FROM&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;-&gt;&nbsp;&nbsp;&nbsp;&nbsp; (&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;-&gt;&nbsp;&nbsp;&nbsp;&nbsp; SELECT id,json_extract(person_desc,&#039;$.authors[0][0]&#039;) AS &quot;authors&quot; FROM json_test&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;-&gt;&nbsp;&nbsp;&nbsp;&nbsp; UNION ALL&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;-&gt;&nbsp;&nbsp;&nbsp;&nbsp; SELECT id,json_extract(person_desc,&#039;$.authors[1][0]&#039;) AS &quot;authors&quot; FROM json_test&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;-&gt;&nbsp;&nbsp;&nbsp;&nbsp; UNION ALL&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;-&gt;&nbsp;&nbsp;&nbsp;&nbsp; SELECT id,json_extract(person_desc,&#039;$.authors[2][0]&#039;) AS &quot;authors&quot; FROM json_test&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;-&gt;&nbsp;&nbsp;&nbsp;&nbsp; ) AS T1&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;-&gt;&nbsp;&nbsp;&nbsp;&nbsp; ORDER BY NAME DESC;<br/>+------------+----------------------------------------------------------------------------+<br/>&#124; name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#124; AUTHORS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#124;<br/>+------------+----------------------------------------------------------------------------+<br/>&#124; &quot;Williams&quot; &#124; &#123;&quot;genre&quot;: &quot;fantasy&quot;, &quot;lastName&quot;: &quot;Williams&quot;, &quot;firstName&quot;: &quot;Tad&quot;&#125;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#124;<br/>&#124; &quot;Peretti&quot;&nbsp;&nbsp;&#124; &#123;&quot;genre&quot;: &quot;christianfiction&quot;, &quot;lastName&quot;: &quot;Peretti&quot;, &quot;firstName&quot;: &quot;Frank&quot;&#125; &#124;<br/>&#124; &quot;Asimov&quot;&nbsp;&nbsp; &#124; &#123;&quot;genre&quot;: &quot;sciencefiction&quot;, &quot;lastName&quot;: &quot;Asimov&quot;, &quot;firstName&quot;: &quot;Isaac&quot;&#125;&nbsp;&nbsp;&nbsp;&nbsp;&#124;<br/>+------------+----------------------------------------------------------------------------+<br/>3 rows in set (0.00 sec)<br/><br/><br/><br/>mysql&gt; SELECT&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;-&gt; json_extract(AUTHORS,&#039;$.firstName[0]&#039;) AS &quot;firstname&quot;,&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;-&gt; json_extract(AUTHORS,&#039;$.lastName[0]&#039;) AS &quot;lastname&quot;,&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;-&gt; json_extract(AUTHORS,&#039;$.genre[0]&#039;) AS &quot;genre&quot;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;-&gt; FROM&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;-&gt; (&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;-&gt; SELECT id,json_extract(person_desc,&#039;$.authors[0]&#039;) AS &quot;authors&quot; FROM json_test&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;-&gt; ) AS T&#92;G ;<br/>*************************** 1. row ***************************<br/>firstname: &quot;Isaac&quot;<br/> lastname: &quot;Asimov&quot;<br/>&nbsp;&nbsp;&nbsp;&nbsp;genre: &quot;sciencefiction&quot;<br/>1 row in set (0.00 sec)<br/><br/>修改的方法，注意加双引号：<br/>mysql&gt; update json_test set&nbsp;&nbsp;person_desc=json_set(person_desc,&quot;$.authors[2].firstName&quot;,&#039;dong&#039;);<br/>Query OK, 1 row affected (0.04 sec)<br/>Rows matched: 1&nbsp;&nbsp;Changed: 1&nbsp;&nbsp;Warnings: 0<br/><br/>mysql&gt; SELECT id,json_extract(person_desc,&#039;$.authors[2].firstName&#039;) AS &quot;authors&quot; FROM json_test;<br/>+------+---------+<br/>&#124; id&nbsp;&nbsp; &#124; authors &#124;<br/>+------+---------+<br/>&#124;&nbsp;&nbsp;&nbsp;&nbsp;1 &#124; &quot;dong&quot;&nbsp;&nbsp;&#124;<br/>+------+---------+<br/>1 row in set (0.00 sec)<br/><br/><br/><br/>自己设计一个Json串的字段：<br/>&nbsp;&nbsp;&#123;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&quot;deviceinfo&quot;: [&#123;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;chineseName&quot;: &quot;蛋壳孵化I型&quot;,&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;EnglishName&quot;: &quot;LevooAllCanBeHatch&quot;,&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;deviceMacAdd&quot;: &quot;00-50-56-C0-00-08&quot;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;],&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&quot;tcpserverinfo&quot;: [&#123;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;fd&quot;: &quot;Isaac&quot;,&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;connTime&quot;: &quot;2014-11-11 23:45:21&quot;,&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;connIp&quot;: &quot;127.0.0.1&quot;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;],&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&quot;websocketinfo&quot;: [&#123;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;fd&quot;: &quot;1&quot;,&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;connTime&quot;: &quot;2014-11-11 23:45:21&quot;,&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;connIp&quot;: &quot;127.0.0.1&quot;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;, &#123;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;fd&quot;: &quot;21&quot;,&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;connTime&quot;: &quot;2014-11-11 23:45:21&quot;,&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;connIp&quot;: &quot;127.0.0.2&quot;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;]&nbsp;&nbsp;<br/>&#125;<br/><br/><br/>mysql&gt; update `json_test` set person_desc=json_set(person_desc, &quot;$.deviceinfo[0].chineseName&quot;, &#039;蛋壳108&#039;) where id=20;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>Query OK, 1 row affected (0.02 sec)<br/>Rows matched: 1&nbsp;&nbsp;Changed: 1&nbsp;&nbsp;Warnings: 0<br/><br/><br/>mysql&gt;&nbsp;&nbsp;SELECT * FROM json_test where id=20&#92;G;<br/>*************************** 1. row ***************************<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id: 20<br/>person_desc: &#123;&quot;deviceinfo&quot;: [&#123;&quot;EnglishName&quot;: &quot;LevooAllCanBeHatch&quot;, &quot;chineseName&quot;: &quot;蛋壳108&quot;, &quot;deviceMacAdd&quot;: &quot;00-50-56-C0-00-08&quot;&#125;], &quot;tcpserverinfo&quot;: [&#123;&quot;fd&quot;: &quot;Isaac&quot;, &quot;connIp&quot;: &quot;127.0.0.1&quot;, &quot;connTime&quot;: &quot;2014-11-11 23:45:21&quot;&#125;], &quot;websocketinfo&quot;: [&#123;&quot;fd&quot;: &quot;1&quot;, &quot;connIp&quot;: &quot;127.0.0.1&quot;, &quot;connTime&quot;: &quot;2014-11-11 23:45:21&quot;&#125;, &#123;&quot;fd&quot;: &quot;21&quot;, &quot;connIp&quot;: &quot;127.0.0.2&quot;, &quot;connTime&quot;: &quot;2014-11-11 23:45:21&quot;&#125;]&#125;<br/>1 row in set (0.00 sec)<br/><br/><br/><br/><br/>Json的格式更简单一些：<br/>&nbsp;&nbsp;&#123;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&quot;deviceinfo&quot;: &#123;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;chineseName&quot;: &quot;蛋壳孵化I型&quot;,&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;EnglishName&quot;: &quot;LevooAllCanBeHatch&quot;,&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;deviceMacAdd&quot;: &quot;00-50-56-C0-00-08&quot;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;,&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&quot;tcpserverinfo&quot;: &#123;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;fd&quot;: &quot;Isaac&quot;,&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;connTime&quot;: &quot;2014-11-11 23:45:21&quot;,&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;connIp&quot;: &quot;127.0.0.1&quot;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;,&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&quot;websocketinfo&quot;: [&#123;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;fd&quot;: &quot;1&quot;,&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;connTime&quot;: &quot;2014-11-11 23:45:21&quot;,&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;connIp&quot;: &quot;127.0.0.1&quot;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;, &#123;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;fd&quot;: &quot;21&quot;,&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;connTime&quot;: &quot;2014-11-11 23:45:21&quot;,&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;connIp&quot;: &quot;127.0.0.2&quot;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;]&nbsp;&nbsp;<br/>&#125;<br/>mysql&gt; update `json_test` set person_desc=json_set(person_desc, &quot;$.deviceinf.chineseName&quot;, &#039;蛋壳108&#039;) where id=30;<br/>Query OK, 0 rows affected (0.01 sec)<br/>Rows matched: 1&nbsp;&nbsp;Changed: 0&nbsp;&nbsp;Warnings: 0<br/><br/><br/>=================================================================================================================<br/>mysql&gt; SELECT * FROM json_test where id=30&#92;G;<br/>*************************** 1. row ***************************<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id: 30<br/>person_desc: &#123;&quot;deviceinfo&quot;: &#123;&quot;EnglishName&quot;: &quot;LevooAllCanBeHatch&quot;, &quot;chineseName&quot;: &quot;蛋壳孵化I型&quot;, &quot;deviceMacAdd&quot;: &quot;00-50-56-C0-00-08&quot;&#125;, &quot;tcpserverinfo&quot;: &#123;&quot;fd&quot;: &quot;Isaac&quot;, &quot;connIp&quot;: &quot;127.0.0.1&quot;, &quot;connTime&quot;: &quot;2014-11-11 23:45:21&quot;&#125;, &quot;websocketinfo&quot;: [&#123;&quot;fd&quot;: &quot;1&quot;, &quot;connIp&quot;: &quot;127.0.0.1&quot;, &quot;connTime&quot;: &quot;2014-11-11 23:45:21&quot;&#125;, &#123;&quot;fd&quot;: &quot;21&quot;, &quot;connIp&quot;: &quot;127.0.0.2&quot;, &quot;connTime&quot;: &quot;2014-11-11 23:45:21&quot;&#125;]&#125;<br/>1 row in set (0.00 sec)<br/><br/>mysql&gt; update `json_test` set person_desc=json_set(person_desc, &quot;$.deviceinfo.chineseName&quot;, &#039;蛋壳1081&#039;) where id=30;<br/>Query OK, 1 row affected (0.02 sec)<br/>Rows matched: 1&nbsp;&nbsp;Changed: 1&nbsp;&nbsp;Warnings: 0<br/><br/>mysql&gt; SELECT * FROM json_test where id=30&#92;G;<br/>*************************** 1. row ***************************<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id: 30<br/>person_desc: &#123;&quot;deviceinfo&quot;: &#123;&quot;EnglishName&quot;: &quot;LevooAllCanBeHatch&quot;, &quot;chineseName&quot;: &quot;蛋壳1081&quot;, &quot;deviceMacAdd&quot;: &quot;00-50-56-C0-00-08&quot;&#125;, &quot;tcpserverinfo&quot;: &#123;&quot;fd&quot;: &quot;Isaac&quot;, &quot;connIp&quot;: &quot;127.0.0.1&quot;, &quot;connTime&quot;: &quot;2014-11-11 23:45:21&quot;&#125;, &quot;websocketinfo&quot;: [&#123;&quot;fd&quot;: &quot;1&quot;, &quot;connIp&quot;: &quot;127.0.0.1&quot;, &quot;connTime&quot;: &quot;2014-11-11 23:45:21&quot;&#125;, &#123;&quot;fd&quot;: &quot;21&quot;, &quot;connIp&quot;: &quot;127.0.0.2&quot;, &quot;connTime&quot;: &quot;2014-11-11 23:45:21&quot;&#125;]&#125;<br/>1 row in set (0.00 sec)<br/><br/><br/>=================================================================================================================<br/>mysql&gt; update `json_test` set person_desc=json_set(person_desc, &quot;$.deviceinfo.chineseName&quot;, &#039;蛋壳108109&#039;) where id=30;<br/>Query OK, 1 row affected (0.01 sec)<br/>Rows matched: 1&nbsp;&nbsp;Changed: 1&nbsp;&nbsp;Warnings: 0<br/><br/>mysql&gt; SELECT * FROM json_test where id=30&#92;G;<br/>*************************** 1. row ***************************<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id: 30<br/>person_desc: &#123;&quot;deviceinfo&quot;: &#123;&quot;EnglishName&quot;: &quot;LevooAllCanBeHatch&quot;, &quot;chineseName&quot;: &quot;蛋壳108109&quot;, &quot;deviceMacAdd&quot;: &quot;00-50-56-C0-00-08&quot;&#125;, &quot;tcpserverinfo&quot;: &#123;&quot;fd&quot;: &quot;Isaac&quot;, &quot;connIp&quot;: &quot;127.0.0.1&quot;, &quot;connTime&quot;: &quot;2014-11-11 23:45:21&quot;&#125;, &quot;websocketinfo&quot;: [&#123;&quot;fd&quot;: &quot;1&quot;, &quot;connIp&quot;: &quot;127.0.0.1&quot;, &quot;connTime&quot;: &quot;2014-11-11 23:45:21&quot;&#125;, &#123;&quot;fd&quot;: &quot;21&quot;, &quot;connIp&quot;: &quot;127.0.0.2&quot;, &quot;connTime&quot;: &quot;2014-11-11 23:45:21&quot;&#125;]&#125;<br/>1 row in set (0.00 sec)<br/><br/>===================================================================================================================<br/>mysql&gt; update `json_test` set person_desc=json_set(person_desc, &quot;$.tcpserverinfo.fd&quot;, &#039;蛋壳108109&#039;) where id=30;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>Query OK, 1 row affected (0.02 sec)<br/>Rows matched: 1&nbsp;&nbsp;Changed: 1&nbsp;&nbsp;Warnings: 0<br/><br/><br/><br/>======================================================修改二级=====================================================<br/>mysql&gt; update `json_test` set person_desc=json_set(person_desc, &quot;$.websocketinfo[1].fd&quot;, &#039;22&#039;) where id=30;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>Query OK, 1 row affected (0.01 sec)<br/>Rows matched: 1&nbsp;&nbsp;Changed: 1&nbsp;&nbsp;Warnings: 0<br/><br/>mysql&gt; SELECT * FROM json_test where id=30&#92;G;<br/>*************************** 1. row ***************************<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id: 30<br/>person_desc: &#123;&quot;deviceinfo&quot;: &#123;&quot;EnglishName&quot;: &quot;LevooAllCanBeHatch&quot;, &quot;chineseName&quot;: &quot;蛋壳108109&quot;, &quot;deviceMacAdd&quot;: &quot;00-50-56-C0-00-08&quot;&#125;, &quot;tcpserverinfo&quot;: &#123;&quot;fd&quot;: &quot;蛋壳108109&quot;, &quot;connIp&quot;: &quot;127.0.0.1&quot;, &quot;connTime&quot;: &quot;2014-11-11 23:45:21&quot;&#125;, &quot;websocketinfo&quot;: [&#123;&quot;fd&quot;: &quot;1&quot;, &quot;connIp&quot;: &quot;127.0.0.1&quot;, &quot;connTime&quot;: &quot;2014-11-11 23:45:21&quot;&#125;, &#123;&quot;fd&quot;: &quot;22&quot;, &quot;connIp&quot;: &quot;127.0.0.2&quot;, &quot;connTime&quot;: &quot;2014-11-11 23:45:21&quot;&#125;]&#125;<br/>1 row in set (0.00 sec)<br/><br/><br/>=================================插入新的数组属性===================================<br/>mysql&gt; update `json_test` set person_desc=json_insert(person_desc, &quot;$.websocketinfo[1].fdfd&quot;, &#039;2222&#039;) where id=30; <br/>Query OK, 1 row affected (0.01 sec)<br/>Rows matched: 1&nbsp;&nbsp;Changed: 1&nbsp;&nbsp;Warnings: 0<br/><br/>mysql&gt; SELECT * FROM json_test where id=30&#92;G;<br/>*************************** 1. row ***************************<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id: 30<br/>person_desc: &#123;&quot;deviceinfo&quot;: &#123;&quot;EnglishName&quot;: &quot;LevooAllCanBeHatch&quot;, &quot;chineseName&quot;: &quot;蛋壳108109&quot;, &quot;deviceMacAdd&quot;: &quot;00-50-56-C0-00-08&quot;&#125;, &quot;tcpserverinfo&quot;: &#123;&quot;fd&quot;: &quot;蛋壳108109&quot;, &quot;connIp&quot;: &quot;127.0.0.1&quot;, &quot;connTime&quot;: &quot;2014-11-11 23:45:21&quot;&#125;, &quot;websocketinfo&quot;: [&#123;&quot;fd&quot;: &quot;1&quot;, &quot;connIp&quot;: &quot;127.0.0.1&quot;, &quot;connTime&quot;: &quot;2014-11-11 23:45:21&quot;&#125;, &#123;&quot;fd&quot;: &quot;22&quot;, &quot;fdfd&quot;: &quot;2222&quot;, &quot;connIp&quot;: &quot;127.0.0.2&quot;, &quot;connTime&quot;: &quot;2014-11-11 23:45:21&quot;&#125;]&#125;<br/><br/><br/>最后想了一下，那个websocket是没有啥用的，直接简单化即可：<br/>&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&quot;deviceinfo&quot;:&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;EnglishName&quot;:&quot;LevooAllCanBeHatch&quot;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;chineseName&quot;:&quot;蛋壳108109&quot;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;deviceMacAdd&quot;:&quot;00-50-56-C0-00-08&quot;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&quot;tcpserverinfo&quot;:&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;fd&quot;:&quot;蛋壳108109&quot;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;connIp&quot;:&quot;127.0.0.1&quot;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;connTime&quot;:&quot;2014-11-11 23:45:21&quot;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&quot;websocketinfo&quot;:[<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;fd&quot;:&quot;1&quot;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;connIp&quot;:&quot;127.0.0.1&quot;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;connTime&quot;:&quot;2014-11-11 23:45:21&quot;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;]<br/>&#125;<br/><br/><br/><br/>josn类不能有如下默认值：<br/>&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&quot;deviceinfo&quot;:&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;EnglishName&quot;:&quot;N/A&quot;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;chineseName&quot;:&quot;N/A&quot;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;deviceMacAdd&quot;:&quot;N/A&quot;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&quot;tcpserverinfo&quot;:&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;fd&quot;:&quot;N/A&quot;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;connIp&quot;:&quot;N/A&quot;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;connTime&quot;:&quot;N/A&quot;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&quot;websocketinfo&quot;:[<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;fd&quot;:&quot;N/A&quot;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;connIp&quot;:&quot;N/A&quot;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;connTime&quot;:&quot;N/A&quot;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;]<br/>&#125;<br/><br/><textarea name="code" class="php" rows="15" cols="100">
&lt;?php&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
$json = &lt;&lt;&lt; EOF 
&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&quot;deviceinfo&quot;:&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;EnglishName&quot;:&quot;N/A&quot;,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;chineseName&quot;:&quot;N/A&quot;,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;deviceMacAdd&quot;:&quot;N/A&quot;
&nbsp;&nbsp;&nbsp;&nbsp;&#125;,&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&quot;tcpserverinfo&quot;:&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;fd&quot;:&quot;N/A&quot;,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;connIp&quot;:&quot;N/A&quot;,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;connTime&quot;:&quot;N/A&quot;
&nbsp;&nbsp;&nbsp;&nbsp;&#125;,&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&quot;websocketinfo&quot;:[
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;fd&quot;:&quot;N/A&quot;,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;connIp&quot;:&quot;N/A&quot;,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;connTime&quot;:&quot;N/A&quot;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;]&nbsp;&nbsp; 
&#125;
EOF;
echo $json;
$jsonArr = json_decode($json,true);
print_r($jsonArr);
</textarea><br/><br/> php json.php<br/>&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&quot;deviceinfo&quot;:&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;EnglishName&quot;:&quot;N/A&quot;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;chineseName&quot;:&quot;N/A&quot;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;deviceMacAdd&quot;:&quot;N/A&quot;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&quot;tcpserverinfo&quot;:&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;fd&quot;:&quot;N/A&quot;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;connIp&quot;:&quot;N/A&quot;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;connTime&quot;:&quot;N/A&quot;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&quot;websocketinfo&quot;:[<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;fd&quot;:&quot;N/A&quot;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;connIp&quot;:&quot;N/A&quot;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;connTime&quot;:&quot;N/A&quot;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;]<br/>&#125;Array<br/>(<br/>&nbsp;&nbsp;&nbsp;&nbsp;[deviceinfo] =&gt; Array<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[EnglishName] =&gt; N/A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[chineseName] =&gt; N/A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[deviceMacAdd] =&gt; N/A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;[tcpserverinfo] =&gt; Array<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[fd] =&gt; N/A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[connIp] =&gt; N/A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[connTime] =&gt; N/A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;[websocketinfo] =&gt; Array<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[0] =&gt; Array<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[fd] =&gt; N/A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[connIp] =&gt; N/A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[connTime] =&gt; N/A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br/><br/>)<br/><br/><br/><br/>mysql&gt; select json_extract(data,&#039;$.tcpserverinfo.fd&#039;) as fd from hatch_dev_temp where hatchdevid=1;<br/>+----------------+<br/>&#124; fd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#124;<br/>+----------------+<br/>&#124; &quot;蛋壳108109&quot;&nbsp;&nbsp; &#124;<br/>+----------------+<br/>1 row in set (0.00 sec)<br/><br/><br/>=============================================================================================<br/>mysql&gt; SELECT * FROM json_test where id=30&#92;G;<br/>*************************** 1. row ***************************<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id: 30<br/>person_desc: &#123;&quot;deviceinfo&quot;: &#123;&quot;EnglishName&quot;: &quot;LevooAllCanBeHatch&quot;, &quot;chineseName&quot;: &quot;蛋壳孵化I型&quot;, &quot;deviceMacAdd&quot;: &quot;00-50-56-C0-00-08&quot;&#125;, &quot;tcpserverinfo&quot;: &#123;&quot;fd&quot;: &quot;Isaac&quot;, &quot;connIp&quot;: &quot;127.0.0.1&quot;, &quot;connTime&quot;: &quot;2014-11-11 23:45:21&quot;&#125;, &quot;websocketinfo&quot;: [&#123;&quot;fd&quot;: &quot;1&quot;, &quot;connIp&quot;: &quot;127.0.0.1&quot;, &quot;connTime&quot;: &quot;2014-11-11 23:45:21&quot;&#125;, &#123;&quot;fd&quot;: &quot;21&quot;, &quot;connIp&quot;: &quot;127.0.0.2&quot;, &quot;connTime&quot;: &quot;2014-11-11 23:45:21&quot;&#125;]&#125;<br/>1 row in set (0.00 sec)<br/><br/>mysql&gt; update `json_test` set person_desc=json_set(person_desc, &quot;$.deviceinfo.chineseName&quot;, &#039;蛋壳1081&#039;) where id=30;<br/>Query OK, 1 row affected (0.02 sec)<br/>Rows matched: 1&nbsp;&nbsp;Changed: 1&nbsp;&nbsp;Warnings: 0<br/><br/>mysql&gt; SELECT * FROM json_test where id=30&#92;G;<br/>*************************** 1. row ***************************<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id: 30<br/>person_desc: &#123;&quot;deviceinfo&quot;: &#123;&quot;EnglishName&quot;: &quot;LevooAllCanBeHatch&quot;, &quot;chineseName&quot;: &quot;蛋壳1081&quot;, &quot;deviceMacAdd&quot;: &quot;00-50-56-C0-00-08&quot;&#125;, &quot;tcpserverinfo&quot;: &#123;&quot;fd&quot;: &quot;Isaac&quot;, &quot;connIp&quot;: &quot;127.0.0.1&quot;, &quot;connTime&quot;: &quot;2014-11-11 23:45:21&quot;&#125;, &quot;websocketinfo&quot;: [&#123;&quot;fd&quot;: &quot;1&quot;, &quot;connIp&quot;: &quot;127.0.0.1&quot;, &quot;connTime&quot;: &quot;2014-11-11 23:45:21&quot;&#125;, &#123;&quot;fd&quot;: &quot;21&quot;, &quot;connIp&quot;: &quot;127.0.0.2&quot;, &quot;connTime&quot;: &quot;2014-11-11 23:45:21&quot;&#125;]&#125;<br/>1 row in set (0.00 sec)<br/><br/><br/>=============================================================================================<br/>mysql&gt; update `json_test` set person_desc=json_set(person_desc, &quot;$.deviceinfo.chineseName&quot;, &#039;蛋壳108109&#039;) where id=30;<br/>Query OK, 1 row affected (0.01 sec)<br/>Rows matched: 1&nbsp;&nbsp;Changed: 1&nbsp;&nbsp;Warnings: 0<br/><br/>mysql&gt; SELECT * FROM json_test where id=30&#92;G;<br/>*************************** 1. row ***************************<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id: 30<br/>person_desc: &#123;&quot;deviceinfo&quot;: &#123;&quot;EnglishName&quot;: &quot;LevooAllCanBeHatch&quot;, &quot;chineseName&quot;: &quot;蛋壳108109&quot;, &quot;deviceMacAdd&quot;: &quot;00-50-56-C0-00-08&quot;&#125;, &quot;tcpserverinfo&quot;: &#123;&quot;fd&quot;: &quot;Isaac&quot;, &quot;connIp&quot;: &quot;127.0.0.1&quot;, &quot;connTime&quot;: &quot;2014-11-11 23:45:21&quot;&#125;, &quot;websocketinfo&quot;: [&#123;&quot;fd&quot;: &quot;1&quot;, &quot;connIp&quot;: &quot;127.0.0.1&quot;, &quot;connTime&quot;: &quot;2014-11-11 23:45:21&quot;&#125;, &#123;&quot;fd&quot;: &quot;21&quot;, &quot;connIp&quot;: &quot;127.0.0.2&quot;, &quot;connTime&quot;: &quot;2014-11-11 23:45:21&quot;&#125;]&#125;<br/>1 row in set (0.00 sec)<br/><br/>===================================================================================================================<br/>mysql&gt; update `json_test` set person_desc=json_set(person_desc, &quot;$.tcpserverinfo.fd&quot;, &#039;蛋壳108109&#039;) where id=30;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>Query OK, 1 row affected (0.02 sec)<br/>Rows matched: 1&nbsp;&nbsp;Changed: 1&nbsp;&nbsp;Warnings: 0<br/><br/><br/><br/>======================================================修改二级=====================================================<br/>mysql&gt; update `json_test` set person_desc=json_set(person_desc, &quot;$.websocketinfo[1].fd&quot;, &#039;22&#039;) where id=30;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>Query OK, 1 row affected (0.01 sec)<br/>Rows matched: 1&nbsp;&nbsp;Changed: 1&nbsp;&nbsp;Warnings: 0<br/><br/>mysql&gt; SELECT * FROM json_test where id=30&#92;G;<br/>*************************** 1. row ***************************<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id: 30<br/>person_desc: &#123;&quot;deviceinfo&quot;: &#123;&quot;EnglishName&quot;: &quot;LevooAllCanBeHatch&quot;, &quot;chineseName&quot;: &quot;蛋壳108109&quot;, &quot;deviceMacAdd&quot;: &quot;00-50-56-C0-00-08&quot;&#125;, &quot;tcpserverinfo&quot;: &#123;&quot;fd&quot;: &quot;蛋壳108109&quot;, &quot;connIp&quot;: &quot;127.0.0.1&quot;, &quot;connTime&quot;: &quot;2014-11-11 23:45:21&quot;&#125;, &quot;websocketinfo&quot;: [&#123;&quot;fd&quot;: &quot;1&quot;, &quot;connIp&quot;: &quot;127.0.0.1&quot;, &quot;connTime&quot;: &quot;2014-11-11 23:45:21&quot;&#125;, &#123;&quot;fd&quot;: &quot;22&quot;, &quot;connIp&quot;: &quot;127.0.0.2&quot;, &quot;connTime&quot;: &quot;2014-11-11 23:45:21&quot;&#125;]&#125;<br/>1 row in set (0.00 sec)<br/><br/><br/>=================================插入新的数组属性===================================<br/>mysql&gt; update `json_test` set person_desc=json_insert(person_desc, &quot;$.websocketinfo[1].fdfd&quot;, &#039;2222&#039;) where id=30; <br/>Query OK, 1 row affected (0.01 sec)<br/>Rows matched: 1&nbsp;&nbsp;Changed: 1&nbsp;&nbsp;Warnings: 0<br/><br/>mysql&gt; SELECT * FROM json_test where id=30&#92;G;<br/>*************************** 1. row ***************************<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id: 30<br/>person_desc: &#123;&quot;deviceinfo&quot;: &#123;&quot;EnglishName&quot;: &quot;LevooAllCanBeHatch&quot;, &quot;chineseName&quot;: &quot;蛋壳108109&quot;, &quot;deviceMacAdd&quot;: &quot;00-50-56-C0-00-08&quot;&#125;, &quot;tcpserverinfo&quot;: &#123;&quot;fd&quot;: &quot;蛋壳108109&quot;, &quot;connIp&quot;: &quot;127.0.0.1&quot;, &quot;connTime&quot;: &quot;2014-11-11 23:45:21&quot;&#125;, &quot;websocketinfo&quot;: [&#123;&quot;fd&quot;: &quot;1&quot;, &quot;connIp&quot;: &quot;127.0.0.1&quot;, &quot;connTime&quot;: &quot;2014-11-11 23:45:21&quot;&#125;, &#123;&quot;fd&quot;: &quot;22&quot;, &quot;fdfd&quot;: &quot;2222&quot;, &quot;connIp&quot;: &quot;127.0.0.2&quot;, &quot;connTime&quot;: &quot;2014-11-11 23:45:21&quot;&#125;]&#125;<br/><br/><br/>最后想了一下，那个websocket是没有啥用的，直接简单化即可：<br/>&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&quot;deviceinfo&quot;:&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;EnglishName&quot;:&quot;LevooAllCanBeHatch&quot;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;chineseName&quot;:&quot;蛋壳108109&quot;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;deviceMacAdd&quot;:&quot;00-50-56-C0-00-08&quot;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&quot;tcpserverinfo&quot;:&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;fd&quot;:&quot;蛋壳108109&quot;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;connIp&quot;:&quot;127.0.0.1&quot;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;connTime&quot;:&quot;2014-11-11 23:45:21&quot;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&quot;websocketinfo&quot;:[<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;fd&quot;:&quot;1&quot;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;connIp&quot;:&quot;127.0.0.1&quot;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;connTime&quot;:&quot;2014-11-11 23:45:21&quot;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;]<br/>&#125;<br/><br/><br/><br/>josn类不能有如下默认值：<br/>&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&quot;deviceinfo&quot;:&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;EnglishName&quot;:&quot;N/A&quot;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;chineseName&quot;:&quot;N/A&quot;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;deviceMacAdd&quot;:&quot;N/A&quot;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&quot;tcpserverinfo&quot;:&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;fd&quot;:&quot;N/A&quot;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;connIp&quot;:&quot;N/A&quot;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;connTime&quot;:&quot;N/A&quot;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&quot;websocketinfo&quot;:[<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;fd&quot;:&quot;N/A&quot;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;connIp&quot;:&quot;N/A&quot;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;connTime&quot;:&quot;N/A&quot;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;]<br/>&#125;<br/><br/>修改tcpserver里的fd的句柄及查询该句柄的值：<br/>mysql&gt; update hatch_dev_temp set data=json_set(data, &quot;$.tcpserverinfo.fd&quot;, &#039;108&#039;) where hatchdevid=1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>Query OK, 1 row affected (0.00 sec)<br/>Rows matched: 1&nbsp;&nbsp;Changed: 1&nbsp;&nbsp;Warnings: 0<br/><br/>mysql&gt; select json_extract(data,&#039;$.tcpserverinfo.fd&#039;) as fd from hatch_dev_temp where hatchdevid=1;&nbsp;&nbsp;&nbsp;&nbsp; <br/>+-------+<br/>&#124; fd&nbsp;&nbsp;&nbsp;&nbsp;&#124;<br/>+-------+<br/>&#124; &quot;108&quot; &#124;<br/>+-------+<br/>1 row in set (0.00 sec)<br/><br/>mysql&gt; update hatch_dev_temp set data=json_set(data,&quot;$.tcpserverinfo.fd&quot;,22) where hatchdevid=1;&nbsp;&nbsp;&nbsp;&nbsp; <br/>Query OK, 1 row affected (0.01 sec)<br/>Rows matched: 1&nbsp;&nbsp;Changed: 1&nbsp;&nbsp;Warnings: 0<br/><br/>mysql&gt;&nbsp;&nbsp;select json_extract(data,&#039;$.tcpserverinfo.fd&#039;) as fd from hatch_dev_temp where hatchdevid=1;&nbsp;&nbsp;<br/>+------+<br/>&#124; fd&nbsp;&nbsp; &#124;<br/>+------+<br/>&#124; 22&nbsp;&nbsp; &#124;<br/>+------+<br/>1 row in set (0.00 sec)<br/><br/><br/>EOF<br/>========================================================================================<br/><textarea name="code" class="php" rows="15" cols="100">
ALTER TABLE `XXX_dev_temp` ADD `data` JSON NOT NULL AFTER `XXX`;
</textarea><br/><br/>修改json数据：<br/>JSON_SET(json_doc, path, val[, path, val] ...)<br/>修改数据<br/><br/>update t set js=json_set(&#039;&#123;&quot;a&quot;:1,&quot;s&quot;:&quot;abc&quot;&#125;&#039;,&#039;$.a&#039;,456,&#039;$.b&#039;,&#039;bbb&#039;) where id=1<br/><br/>结果js=&#123;&quot;a&quot;:456,&quot;s&quot;:&quot;abc&quot;,&quot;b&quot;:&quot;bbb&quot;&#125;<br/><br/>path中$就代表整个doc,然后可以用javascript的方式指定对象属性或者数组下标等.<br/>执行效果，类似json的语法<br/>$.a=456<br/>$.b=&quot;bbb&quot;<br/><br/>存在就修改,不存在就设置.<br/><br/>$.c.c=123<br/>这个在javascript中会出错，因为.c为null。<br/>但是在json_set(&#039;&#123;&#125;&#039;,&#039;$.c.c&#039;,123)中，不存在的路径将直接被忽略。<br/>来自：http://blog.5ibc.net/p/36344.html<br/>http://jackyrong.iteye.com/blog/2282003<br/>多唯json数组的修改处理方法：<br/>http://blog.csdn.net/yueliangdao0608/article/details/49760213<br/><br/><br/>MySQL 5.7.7 labs版本开始InnoDB存储引擎已经原生支持JSON格式，该格式不是简单的BLOB类似的替换。原生的JSON格式支持有以下的优势：<br/>JSON数据有效性检查：BLOB类型无法在数据库层做这样的约束性检查<br/>查询性能的提升：查询不需要遍历所有字符串才能找到数据<br/>支持索引：通过虚拟列的功能可以对JSON中的部分数据进行索引<br/><textarea name="code" class="php" rows="15" cols="100">
[root@iZ25dcp92ckZ ~]# mysql
Welcome to the MySQL monitor.&nbsp;&nbsp;Commands end with ; or &#92;g.
Your MySQL connection id is 1273700
Server version: 8.0.0-dmr-log Source distribution

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type &#039;help;&#039; or &#039;&#92;h&#039; for help. Type &#039;&#92;c&#039; to clear the current input statement.

mysql&gt; use test;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql&gt;&nbsp;&nbsp;create table user ( uid int auto_increment, data json,primary key(uid))engine=innodb;
Query OK, 0 rows affected (0.54 sec)

mysql&gt; insert into user values (NULL, &#039;&#123;&quot;name&quot;:&quot;David&quot;,&quot;mail&quot;:&quot;jiangchengyao@gmail.com&quot;,&quot;address&quot;:&quot;Shangahai&quot;&#125;&#039;);
Query OK, 1 row affected (0.01 sec)

mysql&gt;&nbsp;&nbsp;insert into user values (NULL,&#039;&#123;&quot;name&quot;:&quot;Amy&quot;,&quot;mail&quot;:&quot;amy@gmail.com&quot;&#125;&#039;); 
Query OK, 1 row affected (0.00 sec)

mysql&gt;&nbsp;&nbsp;insert into user values (NULL,&quot;test&quot;); 
ERROR 3140 (22032): Invalid JSON text: &quot;Invalid value.&quot; at position 1 in value for column &#039;user.data&#039;.
mysql&gt; select jsn_extract(data, &#039;$.name&#039;),jsn_extract(data,&#039;$.address&#039;) from user; 
ERROR 1305 (42000): FUNCTION test.jsn_extract does not exist
mysql&gt; select json_extract(data, &#039;$.name&#039;),json_extract(data,&#039;$.address&#039;) from user;
+------------------------------+--------------------------------+
&#124; json_extract(data, &#039;$.name&#039;) &#124; json_extract(data,&#039;$.address&#039;) &#124;
+------------------------------+--------------------------------+
&#124; &quot;David&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#124; &quot;Shangahai&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#124;
&#124; &quot;Amy&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#124; NULL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#124;
+------------------------------+--------------------------------+
2 rows in set (0.00 sec)

mysql&gt; ALTER TABLE user ADD user_name varchar(128)&nbsp;&nbsp;GENERATED ALWAYS AS (json_extract(data,&#039;$.name&#039;)) VIRTUAL; 
Query OK, 0 rows affected (0.92 sec)
Records: 0&nbsp;&nbsp;Duplicates: 0&nbsp;&nbsp;Warnings: 0

mysql&gt; select user_name from user;
+-----------+
&#124; user_name &#124;
+-----------+
&#124; &quot;David&quot;&nbsp;&nbsp; &#124;
&#124; &quot;Amy&quot;&nbsp;&nbsp;&nbsp;&nbsp; &#124;
+-----------+
2 rows in set (0.00 sec)

mysql&gt; alter table user add index idx_username (user_name); 
Query OK, 0 rows affected (0.06 sec)
Records: 0&nbsp;&nbsp;Duplicates: 0&nbsp;&nbsp;Warnings: 0

mysql&gt;&nbsp;&nbsp;explain select * from user where user_name=&#039;&quot;Amy&quot;&#039;&#92;G;
*************************** 1. row ***************************
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id: 1
&nbsp;&nbsp;select_type: SIMPLE
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;table: user
&nbsp;&nbsp; partitions: NULL
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; type: ref
possible_keys: idx_username
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;key: idx_username
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;key_len: 387
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ref: const
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rows: 1
&nbsp;&nbsp;&nbsp;&nbsp; filtered: 100.00
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Extra: NULL
1 row in set, 1 warning (0.01 sec)
</textarea><br/><br/>来自：http://database.51cto.com/art/201504/472302.htm<br/><br/><br/>-------------------------------------------------------------------------------------------------------------------------<br/>MySQL 5.7原生JSON格式支持:<br/><textarea name="code" class="C" rows="15" cols="100">
mysql&gt; create table user ( uid int auto_increment,
&nbsp;&nbsp;&nbsp;&nbsp;-&gt; data json,primary key(uid))engine=innodb;
Query OK, 0 rows affected (0.01 sec)
 
mysql&gt; insert into user values (NULL,
&nbsp;&nbsp;&nbsp;&nbsp;-&gt; &#039;&#123;&quot;name&quot;:&quot;David&quot;,&quot;mail&quot;:&quot;jiangchengyao@gmail.com&quot;,&quot;address&quot;:&quot;Shangahai&quot;&#125;&#039;);
Query OK, 1 row affected (0.00 sec)
 
mysql&gt; insert into user values (NULL,&#039;&#123;&quot;name&quot;:&quot;Amy&quot;,&quot;mail&quot;:&quot;amy@gmail.com&quot;&#125;&#039;);
Query OK, 1 row affected (0.00 sec)
</textarea><br/><br/>可以看到我们新建了表user，并且将列data定义为了JSON类型。这意味着我们可以对插入的数据做JSON格式检查，确保其符合JSON格式的约束，如插入一条不合法的JSON数据会报如下错误：<br/>mysql&gt; insert into user values (NULL,&quot;test&quot;);<br/>ERROR 3130 (22032): Invalid JSON text: &quot;Invalid value&quot; at position 2 in value (or column) &#039;test&#039;.<br/>此外，正如前面所说的，MySQL 5.7提供了一系列函数来高效地处理JSON字符，而不是需要遍历所有字符来查找，这不得不说是对MariaDB dynamic column的巨大改进：<br/><textarea name="code" class="C" rows="15" cols="100">
mysql&gt; select json_extract(data, &#039;$.name&#039;),json_extract(data,&#039;$.address&#039;) from user;
+-----------------------------+-------------------------------+
&#124; json_extract(data, &#039;$.name&#039;) &#124; json_extract(data,&#039;$.address&#039;) &#124;
+-----------------------------+-------------------------------+
&#124; &quot;David&quot; &#124; &quot;Shangahai&quot; &#124;
&#124; &quot;Amy&quot; &#124; NULL &#124;
+-----------------------------+-------------------------------+
2 rows in set (0.00 sec)
</textarea><br/>当然，最令人的激动的功能应该是MySQL 5.7的虚拟列功能，通过传统的B+树索引即可实现对JSON格式部分属性的快速查询。使用方法是首先创建该虚拟列，然后在该虚拟列上创建索引：<br/><textarea name="code" class="C" rows="15" cols="100">
mysql&gt; ALTER TABLE user ADD user_name varchar(128)
&nbsp;&nbsp;&nbsp;&nbsp;-&gt; GENERATED ALWAYS AS (json_extract(data,&#039;$.name&#039;)) VIRTUAL;
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0
 
mysql&gt; select user_name from user;
+-----------+
&#124; user_name &#124;
+-----------+
&#124; &quot;Amy&quot;&nbsp;&nbsp;&nbsp;&nbsp; &#124;
&#124; &quot;David&quot;&nbsp;&nbsp; &#124;
+-----------+
2 rows in set (0.00 sec)
 
mysql&gt; alter table user add index idx_username (user_name);
Query OK, 2 rows affected (0.01 sec)
Records: 2&nbsp;&nbsp;Duplicates: 0&nbsp;&nbsp;Warnings: 0
</textarea><br/>然后可以通过添加的索引对用户名进行快速的查询，这和普通类型的列查询一样。而通过explain可以验证优化器已经选择了在虚拟列上创建的新索引：<br/>mysql&gt; explain select * from user where user_name=&#039;&quot;Amy&quot;&#039;&#92;G<br/>*************************** 1. row ***************************<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id: 1<br/>&nbsp;&nbsp;select_type: SIMPLE<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;table: user<br/>&nbsp;&nbsp; partitions: NULL<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; type: ref<br/>possible_keys: idx_username<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;key: idx_username<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;key_len: 131<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ref: const<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rows: 1<br/>&nbsp;&nbsp;&nbsp;&nbsp; filtered: 100.00<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Extra: NULL<br/>1 row in set, 1 warning (0.00 sec)<br/>可以发现MySQL 5.7对于JSON格式堪称完美<br/><br/>摘自：http://www.innomysql.net/article/15319.html<br/><br/><br/><br/>修改json地址：<br/>mysql&gt; set @json=&#039;[&quot;apple&quot;, &#123;&quot;attr&quot;: [50, true], &quot;name&quot;: &quot;orange&quot;&#125;]&#039;;<br/>Query OK, 0 rows affected (0.00 sec)<br/><br/>mysql&gt; select json_insert(@json, &#039;$[1].attr[0]&#039;, 2, &#039;$[2]&#039;, &quot;pear&quot;);<br/>+-----------------------------------------------------------+<br/>&#124; json_insert(@json, &#039;$[1].attr[0]&#039;, 2, &#039;$[2]&#039;, &quot;pear&quot;)&nbsp;&nbsp;&nbsp;&nbsp; &#124;<br/>+-----------------------------------------------------------+<br/>&#124; [&quot;apple&quot;, &#123;&quot;attr&quot;: [50, true], &quot;name&quot;: &quot;orange&quot;&#125;, &quot;pear&quot;] &#124;<br/>+-----------------------------------------------------------+<br/>1 row in set (0.00 sec)<br/><br/>mysql&gt; select json_replace(@json, &#039;$[1].attr[0]&#039;, 2, &#039;$[2]&#039;, &quot;pear&quot;);<br/>+--------------------------------------------------------+<br/>&#124; json_replace(@json, &#039;$[1].attr[0]&#039;, 2, &#039;$[2]&#039;, &quot;pear&quot;) &#124;<br/>+--------------------------------------------------------+<br/>&#124; [&quot;apple&quot;, &#123;&quot;attr&quot;: [2, true], &quot;name&quot;: &quot;orange&quot;&#125;]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#124;<br/>+--------------------------------------------------------+<br/>1 row in set (0.00 sec)<br/><br/>mysql&gt;&nbsp;&nbsp;select json_set(@json, &#039;$[1].attr[0]&#039;, 2, &#039;$[2]&#039;, &quot;pear&quot;);<br/>+----------------------------------------------------------+<br/>&#124; json_set(@json, &#039;$[1].attr[0]&#039;, 2, &#039;$[2]&#039;, &quot;pear&quot;)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#124;<br/>+----------------------------------------------------------+<br/>&#124; [&quot;apple&quot;, &#123;&quot;attr&quot;: [2, true], &quot;name&quot;: &quot;orange&quot;&#125;, &quot;pear&quot;] &#124;<br/>+----------------------------------------------------------+<br/>1 row in set (0.01 sec)<br/><br/>mysql&gt; select json_remove(@json, &#039;$[1].attr[0]&#039;, &#039;$[2]&#039;);<br/>+-----------------------------------------------+<br/>&#124; json_remove(@json, &#039;$[1].attr[0]&#039;, &#039;$[2]&#039;)&nbsp;&nbsp;&nbsp;&nbsp;&#124;<br/>+-----------------------------------------------+<br/>&#124; [&quot;apple&quot;, &#123;&quot;attr&quot;: [true], &quot;name&quot;: &quot;orange&quot;&#125;] &#124;<br/>+-----------------------------------------------+<br/>1 row in set (0.00 sec)
]]>
</description>
</item><item>
<link>https://jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] MySQL 5.7原生JSON格式支持，对于JSON格式堪称完美，修改某个字段的json。]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>https://jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>