mysql里面的sql_mysql工作中的sql
1.json字段數據更新值
update?cms.cms_content?set?CONTENT?=?JSON_REPLACE(CONTENT,?JSON_UNQUOTE(REPLACE(JSON_SEARCH(CONTENT,?"one",?"preLabel_120"),".code",".value")),?CAST('["1","2","3"]'?as?JSON))?where?id?=?10634;
--sql分析
---查詢path
JSON_SEARCH(CONTENT,?"one",?"preLabel_120")
---字符串轉換成path
JSON_UNQUOTE()
---替換path的值
JSON_REPLACE()
---轉換成JSON
CAST('["1","2","3"]'?as?JSON)
update?cms_content_text?set
DETAIL?=?JSON_REPLACE(DETAIL,?'$.preUrl_122',?CAST('{}'?as?JSON)?),
CONTENT?=?JSON_REPLACE(CONTENT,?JSON_UNQUOTE(REPLACE(JSON_SEARCH(CONTENT,?'one',?'preUrl_122'),'.code','.value')),?CAST('{}'?as?JSON))
where?id?in?(select?id?from?cms_content??where?tid?in?(select?t.ID?from?cms_template?t?where?t.TYPE?in?(2,9)));
2.批量更新
UPDATE CMS_CONTENT SET DETAIL = CASE ID WHEN 13558 THEN JSON_REPLACE(DETAIL,"$.preLabel_120",CAST('["13552","10373","10347"]' AS JSON)) WHEN 13559 THEN JSON_REPLACE(DETAIL,"$.preLabel_120",CAST('[]' AS JSON)) END, DETAIL_ES = CASE ID WHEN 13558 THEN JSON_REPLACE(DETAIL_ES,"$.es_multi_preLabel_120",CAST('["13552","10373","10347"]' AS JSON)) WHEN 13559 THEN JSON_REPLACE(DETAIL_ES,"$.es_multi_preLabel_120",CAST('[]' AS JSON)) END, CONTENT = CASE ID WHEN 13558 THEN JSON_REPLACE(CONTENT,JSON_UNQUOTE(REPLACE(JSON_SEARCH(CONTENT,"one","preLabel_120"),".code",".value")),CAST('["13552","10373","10347"]' AS JSON)) WHEN 13559 THEN JSON_REPLACE(CONTENT,JSON_UNQUOTE(REPLACE(JSON_SEARCH(CONTENT,"one","preLabel_120"),".code",".value")),CAST('[]' AS JSON)) END, UPDATE_DATE = "2021-01-19 13:48:01.272" WHERE ID IN (13558,13559) AND TENANT_ID = 1600035223
3.插入
從一個表復制數據插入到另外一個表,目標表中任何已存在的行都不會受影響。
語法:
INSERT?INTO?table_xxx?VALUES();INSERT?INTO?table_xxx?SELECT?xxx?from?table_yyy;
當表A和表B的表結構一致時,直接插入即可。
insert?into?A?select?*?from?B;
當表結構不一致時(字段大小、類型都相同)
insert?into?A(col1,?col2)?select?col1,?col2?from?B;
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的mysql里面的sql_mysql工作中的sql的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: heroku能用mysql吗_herok
- 下一篇: mysql5.6的安装步骤_MySQL5