我正在紧张地迁移和更新MySQL数据库,对于每条记录,我需要一些帮助来实现以下目标:
从记录的“名称”列中提取最后一个单词
将提取的单词封装在字符串中。
- 醇>
用新字符串替换'elements'列(longtext)中的第一个字符。
示例:
“名称”列包含以下数据:
Andrew Brewer
应该将提取的单词封装在一个字符串中以查看:
{
"0152cbf9-2bab-48dc-81e3-82d7b1b505ec": {
"0": {
"value": "Brewer"
}
},
当前的“元素”列以以下数据开头:
{
"540aa2ad-9a8d-454d-b915-605b884e76d5": {
"file": "images\/profile-male\/ANDY_B_PROFILE.jpg",
"title": "",
"link": "",
"target": "0",
"rel": "",
"lightbox_image": "images\/profile-male\/ANDY_B_PROFILE.jpg",
"spotlight_effect": "",
"caption": "",
"width": 833,
"height": 1163
},
etc...
我们需要新的'elements'列看起来像这样(假设替换字段中的第一个字符比插入它更容易):
{
"0152cbf9-2bab-48dc-81e3-82d7b1b505ec": {
"0": {
"value": "Brewer"
}
},
"540aa2ad-9a8d-454d-b915-605b884e76d5": {
"file": "images\/profile-male\/ANDY_B_PROFILE.jpg",
"title": "",
"link": "",
"target": "0",
"rel": "",
"lightbox_image": "images\/profile-male\/ANDY_B_PROFILE.jpg",
"spotlight_effect": "",
"caption": "",
"width": 833,
"height": 1163
},
etc...
不需要特别限制间隔姓氏等 任何和所有帮助都感激不尽。
查询代码将实现上述目的是什么?
我是一名具有HTML / CSS / jQuery技能的设计师,但我是一名绝对的SQL新手,尽管我花了12个小时,但我今天还没有走得太远。
我获得了姓氏的间歇性结果,因为某些名称有尾随空格并且正在抵制trim命令。也许他们不是空间而是另一种类型的空白?在任何情况下,想法是反转字符串,找到第一个空格,修剪和反转,这是成功的。
SELECT RTRIM(`name`),
REVERSE(SUBSTRING(REVERSE(`name`), 1, LOCATE(' ', REVERSE(`name`)) - 1)) AS LastName
FROM `artist`;
下一步是连接字符串start + LastName + end然后替换'elements'列的第一个字符,但我不知道如何做到这一点。
如果我在错误的地方询问此类问题,请随时关闭此处,我将手动编辑数据库。