【问题标题】:MySQL regex - Get text in one queryMySQL 正则表达式 - 在一个查询中获取文本
【发布时间】:2015-07-27 01:45:47
【问题描述】:

假设我们在 MySQL 中有一个这样的表

tbl_test

-----------------------------------------------------
| ID | text                                         |
-----------------------------------------------------
| 1  | Lorem ipsum \n Teacher: Mr. Brown \n Age: 43 | 
| 2  | Dolor \n Teacher: Mrs. Morgan \n Age: 35     | 
-----------------------------------------------------

是否可以通过一个 SQL 查询获取教师姓名。 预期的结果应该是:

 Mr. Brown
 Mrs. Morgan

我想到了类似 regex SQL 查询的东西。我已经用LIKE 尝试过了,但是我得到了整个文本,而不仅仅是老师的名字。

SELECT text FROM tbl_test WHERE text LIKE '%Teacher%';

输出

Lorem ipsum \n Teacher: Mr. Brown \n Age: 43
Dolor \n Teacher: Mrs. Morgan \n Age: 35

【问题讨论】:

标签: mysql regex


【解决方案1】:

如果模式相同,您可以使用substring_index

mysql> select substring_index(substring_index('Lorem ipsum \n Teacher: Mr. Brown \n Age: 43','Teacher:',-1),'\n',1) as teacher;
+-------------+
| teacher     |
+-------------+
|  Mr. Brown  |
+-------------+
1 row in set (0.00 sec)



select
substring_index(substring_index(text,'Teacher:',-1),'\n',1) as teacher_name
from tbl_test ;

【讨论】:

    猜你喜欢
    • 2022-11-28
    • 2013-04-04
    • 1970-01-01
    • 2012-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-13
    • 1970-01-01
    相关资源
    最近更新 更多