因此,我试图实现的目的是连接两个表,要连接的列需要一个正则表达式来将两个表匹配在一起。我曾经有一个使用LIKE(%)的解决方案有效,但是现在我想尝试通过仅与regexp匹配来使查询更快。
table1
| col1 | col2 |
| blablaaa |12323_string|
table2
| col2 | col2 |
| blabla | string |
所以col2上的字符串是我想要加入它们的地方,但是我需要在下划线后匹配字符串...
这是我离得最近的地方,但我可能仍然遥遥无期
SELECT *
FROM table1 AS t1 JOIN table2 AS t2
ON t1.col2 REGEXP CONCAT('(?<=_)[^_] + t2.col2')
我不知道那里是否有一个热情的人可以帮助我。
最佳答案
只需使用substring_index()
:
SELECT *
FROM table1 t1 JOIN
table2 t2
ON t2.col2 = substring_index(t1.col2, '_', -1);
也许
like
:SELECT *
FROM table1 t1 JOIN
table2 t2
ON t1.col2 LIKE CONCAT('%\_', t2.col2);
关于mysql - 在正则表达式上加入MySQL表(下划线后),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30508414/