我有一个sql问题。我有一个包含名为title的列的表,该列在所有raw中存储这样的字符串。
"Prenom - Nom (85)".
我想知道sql中是否有一种方法可以像这样更改字符串:
"Nom - Prenom"
这意味着,我想将其反转,然后删除“(85)。
提前谢谢。
答案 0 :(得分:2)
是:
select concat(substring_index(left(col, length(col) - instr(reverse(col), ' ')), ' - ', -1),
' - ',
substring_index(col, ' - ', 1)
)
这假设你想要比摆脱'(85)'
更通用的东西;它删除了最后的单词。
答案 1 :(得分:0)
丑陋的地狱,几乎肯定不会适用于你的所有情况。但这适用于您发布的示例:
select concat(
substring_index(substring_index("Prenom - Nom (85)"," (",1)," - ",-1),
" - ",
substring_index(substring_index("Prenom - Nom (85)"," (",1)," - ",1)
);