gpt4 book ai didi

mysql - 使用 REGEXP 的“高级”Mysql 查询

转载 作者:行者123 更新时间:2023-11-29 04:38:47 25 4
gpt4 key购买 nike

我有两个关系表,t1call_number 列,t2phone_number

示例表:

+----+-------------+
| id | call_number |
+----+-------------+
| 1 | 36202665476 |
+----+-------------+

+----+-----------------+
| id | phone_number |
+----+-----------------+
| 1 | +36 20 266-5476 |
+----+-----------------+

我必须使用正则表达式编写一个返回这两个“匹配”行的查询,而无需对数据库进行任何修改。

SELECT t1.*,t2.* 
FROM t1,t2
WHERE
t1.call_number REGEXP concat( t2.phone_number, '[^0-9]')

因此在查询中我必须删除不必要的字符(来自 t2.phone_number),然后将“修剪过”的列与 t1.call_number 进行比较以找到匹配项。

任何建议都会派上用场。

谢谢

最佳答案

您可以像这样替换连接条件中的多余字符:

select *
from t1
join t2
on t1.call_number = replace(replace(replace(t2.phone_number, ' ',''), '-',''),'+','')

当然,您必须事先知道并考虑所有应该删除的字符。

Sample SQL Fiddle

显示匹配的示例结果:

| id | call_number | id |    phone_number |
|----|-------------|----|-----------------|
| 1 | 36202665476 | 1 | +36 20 266-5476 |

关于mysql - 使用 REGEXP 的“高级”Mysql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34529853/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com