早上好,我只是想向选择查询的人员寻求帮助,以选择一些字符,但删除两个破折号之间的任何内容,例如:
011-12-004 , 011-32-003-B
到
011004 , 011003-B
我所能做的就是从短划线中删除。请帮助我。
答案 0 :(得分:1)
我不太确定如何区分-32-和-003-,我猜您应该替换与-(number here)-
相匹配的模式。
在MySQL 8.0
中,您可以使用REGEXP_REPLACE()
函数。
SELECT REGEXP_REPLACE(text,'-[0-9]+-','',1,0,'c') FROM your_table;
输出将是:
011004
011003-B
答案 1 :(得分:0)
这可能不太正确,但是足够接近...
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 |
+-----------------------+