如何从varchar中删除变量字符串

时间:2017-04-25 14:58:06

标签: mysql sql

我正在研究MySQL。

您知道如何从列mailing_name

中转换这些字段吗?
  

邮寄A(53572/99564)

     

邮寄B

     

邮寄C(1211212/1532314)

进入这些?

  

邮寄A

     

邮寄B

     

邮寄C

问题是这些最后一个字符的长度并不总是相同的:(

我设法找到哪些字段与

有关

IF (t.mailing_name LIKE '%(%/%)',1,0) as test,

但我无法用

替换它们
REPLACE(t.mailing_name,'(%/%)','') as test2,

我对任何想法都很感兴趣。

提前致谢!

编辑:非常感谢substring_index提示。因为有时候我会有几个'('在该领域我最终得到:

IF (t.mailing_name LIKE '%(%/%)',SUBSTRING_INDEX(t.mailing_name,' (',LENGTH(t.mailing_name)-LENGTH(REPLACE(t.mailing_name,'(',''))),t.mailing_name) as test,

就像魅力一样。

1 个答案:

答案 0 :(得分:0)

您可以使用 SUBSTRING_INDEX 在第二个空格后将其拆分为:

SELECT SUBSTRING_INDEX('Mailing B (53572/99564)', ' ', 2);

<强>样品

mysql> SELECT SUBSTRING_INDEX('Mailing B (53572/99564)', ' ', 2);
+----------------------------------------------------+
| SUBSTRING_INDEX('Mailing B (53572/99564)', ' ', 2) |
+----------------------------------------------------+
| Mailing B                                          |
+----------------------------------------------------+
1 row in set (0,00 sec)

mysql>