我正在研究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,
就像魅力一样。
答案 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>