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

标签 mysql sql

我正在研究 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/

相关文章:

php - 从 MySql 获取非顺序 ID

java - 卸载 jdbc sql server 驱动程序

sql - 计算时间范围内的分组时间间隔

mysql - 使用 phpMyAdmin 导出更改时间戳

mysql - 将 Controller 在 Blade 文件中获取的值传递给查询

php - 通过php代码连接数据库

mysql - 将计算的 COUNT 列从一个 View 添加到另一 View

MySQL使用 'where not exists'插入多行并且没有主键

sql - 如何在 Sql Server 中的 SELECT CASE 子句的比较中使用 COUNT()?

mysql - 如何在搜索特定文档名称时提取空值