删除mysql中字符串后的所有内容
Posted
技术标签:
【中文标题】删除mysql中字符串后的所有内容【英文标题】:Removing everything after a string in mysql 【发布时间】:2017-06-03 13:09:34 【问题描述】:我有一堆图像文件名,我上传到 wordpress 并想在 phpmyadmin 中使用 sql 更改文件名。这些文件是这样的: text-text-text-328x328.jpg text-text-590x236.jpg 文字-文字-文字-文字-150x150.jpg text-569x348.jpg
tex-text-text.jpg
所以我想删除标题中的文件。我唯一能做的就是在 - 加上一个数字之后删除字符串
我知道如何在 - 之后删除所有内容:
UPDATE MyTable
SET MyText = LEFT(MyText, CHARINDEX('-', MyText) - 1)
WHERE CHARINDEX(';', MyText) > 0
只是不确定如何删除 - 和数字之后的所有内容。
谢谢!
【问题讨论】:
我想我可以将上面的代码运行10次,sql'-1','2','3','4'等。 您可以在 WHERE 子句中添加一个 REGEX 条件匹配.*-\d+x\d+\.jpg
之类的内容。
【参考方案1】:
SELECT
name,
concat(
substr(name, 1, length(name) - length(substring_index(name,'-',-1)) - 1),
'.',
substring_index(name, '.', -1)
) as newname
FROM 0_a
【讨论】:
非常感谢!效果很好:)以上是关于删除mysql中字符串后的所有内容的主要内容,如果未能解决你的问题,请参考以下文章