美好的一天,我只是想请求一个选择查询的帮助,以选择一些字符,但删除两个破折号之间的任何内容,例如:
011-12-004 , 011-32-003-B
至
011004 , 011003-B
我所能做的就是从一个破折号中删除。请帮我。
我不太确定如何区分-32-与-003-,我猜你应该替换匹配-(number here)-
的模式。
在MySQL 8.0
你可以使用REGEXP_REPLACE()
功能。
SELECT REGEXP_REPLACE(text,'-[0-9]+-','',1,0,'c') FROM your_table;
输出将是:
011004
011003-B
这可能不太对,但足够接近......
SET @s = '011-12-004 , 011-32-003-B';
SELECT CONCAT(MID(@s,1,CHAR_LENGTH(SUBSTRING_INDEX(@s,'-',1))),MID(@s,CHAR_LENGTH(SUBSTRING_INDEX(@s,'-',2))+2,1000))x;
+-----------------------+
| x |
+-----------------------+
| 011004 , 011-32-003-B |
+-----------------------+