0

我有一个 MySQL 表,其中包含一个名为“name”的 VARCHAR 字段和几千行。每行的格式如下:

'一些文本 <1000 - 2000>'

我想删除 '<1000 - 2000>' 部分,只留下 'Hello world' 文本。每行的文本和数字都不同。如何通过查询来完成?我假设某种正则表达式。

任何帮助表示赞赏

4

3 回答 3

0

使用INSTRandREVERSE获取<字符的位置,然后按索引将其删除:

UPDATE `table` SET `name` = SUBSTRING( `name`, 0, INSTR( REVERSE( `name` ), `<` ) )
于 2012-11-17T02:19:41.657 回答
0

看看这个,它可能是你想要的https://launchpad.net/mysql-udf-regexp

问候, 海华沙

于 2012-11-17T02:20:05.797 回答
0

试试这个:

set @txt='Some text <1000 - 2000>';

select left(@txt,locate('<',@txt)-1) as text


SQL 小提琴演示

于 2012-11-17T03:41:14.540 回答