我正在研究 MySQL。
你知道我如何从 mailing_name 列中转出这些字段吗
Mailing A (53572/99564)
Mailing B
Mailing C (1211212/1532314)
进入这些?
Mailing A
Mailing B
Mailing C
问题是最后这些字符的长度并不总是相同:(
我设法找到了与哪些字段相关的
IF (t.mailing_name LIKE '%(%/%)',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,
这就像一个魅力。
最佳答案
您可以使用 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>
关于mysql - 如何从 varchar 中删除变量字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43614260/