MySQL - WHERE IN CLAUSE 正则表达式匹配电话号码

标签 mysql regex

我想从用户表中搜索电话号码,它有百万条用户记录。用户表将包含带或不带国家/地区代码的电话号码。

用户表中的示例电话号码

+911111122222
3333344444
+15555566666
+917777788888
+19999900000

我要传递的输入电话号码,可能有也可能没有国家代码。我将输入 100 到 1000 个电话号码

1111122222
+913333344444
+15555566666
7777788888
9999900000

我想检索与电话号码匹配的所有记录,无论国家/地区代码如何。

现在我正在使用这个,

Select * from users WHERE phone_numer IN ("1111122222","+913333344444", "+15555566666", "7777788888", "9999900000");

它没有返回所有电话号码,我们应该如何处理?

最佳答案

您可以只检查要测试的号码是否位于数据库中号码的末尾,为此,请查看 this question了解如何将 LIKE 与多个值一起使用。

WHERE phone_number LIKE '%1111122222'

将匹配1111122222+91111122222

关于MySQL - WHERE IN CLAUSE 正则表达式匹配电话号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17989118/

相关文章:

python - 如何让Django使用mysqlclient而不是mysqlDB

mysql - 为什么 Perl 在此 Munin 脚本中重用相同的 MySQL 连接?

regex - 我怎样才能在 bash 中正确地转义这个正则表达式?

javascript - 使用正则表达式转义代码块内的标记

mysql - 调用存储过程的触发器正在更新表中的每个数据,而不是只更新一个

MySQL只加入选定的行

mysql - 从mysql中的先前值中减去

javascript - 提取元素内的所有有效 URL 字符串 (JavaScript)

java - 使用高级正则表达式分割字符串

php - 尝试用破折号替换下划线 _ - 在 href 标签内