首页 > 解决方案 > 在 MySQL 中的特定字符之前将字符串添加到列值

问题描述

想象一下,我有一个表,其中有一个Params列,它包含我的画廊的设置。我想使用 MySQL 查询自动添加 2 个其他属性。我已经测试了这个查询,但它会在不正确的列值的第一个添加我的新属性:

UPDATE table 
SET params=CONCAT(',  "slider_fullscreen_button_skin": "myTheme", "slider_zoompanel_skin": "myTheme"',params)
WHERE params NOT LIKE '%myTheme%';

假设我的专栏中有这个值:

{"title":"Bessariabian","alias":"Bessariabian","category":"1103","full_width":"false"} 

我希望我的价值改变成这样:

{"title":"Bessariabian","alias":"Bessariabian","category":"1103","full_width":"false", "slider_fullscreen_button_skin": "myTheme", "slider_zoompanel_skin": "myTheme"}

我想做一个查询,在}位置之前的值末尾添加新属性。我该如何处理?

标签: mysql

解决方案


尝试:

UPDATE table 
SET params = CONCAT(
                    SUBSTRING_INDEX(params, '}', 1), 
                    ',  "slider_fullscreen_button_skin": "myTheme", "slider_zoompanel_skin": "myTheme"', 
                    '}'
                   )
WHERE params NOT LIKE '%myTheme%';

推荐阅读