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

Mysql 如何从varchar中删除变量字符串,mysql,sql,Mysql,Sql,我正在开发MySQL 您知道如何从列名称转换这些字段吗 邮寄A(53572/99564) 邮寄B 邮寄C(1211212/1532314) 你喜欢这些吗 邮寄 邮寄B 邮寄C 问题在于,最后这些字符的长度并不总是相同的:( 我设法找到了与哪些领域有关 IF(t.mailing_名称,如“%”(%/%),1,0)作为测试, 但我不能用它们来代替它们 REPLACE(t.mailing_name,'(%/%)','') as test2, 我对任何想法都很感兴趣 提前谢谢 编辑:非常感谢subst

我正在开发MySQL

您知道如何从列名称转换这些字段吗

邮寄A(53572/99564)

邮寄B

邮寄C(1211212/1532314)

你喜欢这些吗

邮寄

邮寄B

邮寄C

问题在于,最后这些字符的长度并不总是相同的:(

我设法找到了与哪些领域有关

IF(t.mailing_名称,如“%”(%/%),1,0)作为测试,

但我不能用它们来代替它们

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,

它就像一个符咒。

您可以使用子字符串\u 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>

或者,直到第一个空格后面有一个开始部分,例如,g
SUBSTRING\u INDEX(t.mailing\u name,“(”,1)
@spencer7593-您是否看到前面有空格(.so结果后面有空格