【发布时间】:2016-04-30 10:51:34
【问题描述】:
我有两张桌子。
用户 其中有 id 和 电话号码
id phone_no
1 ---- 9912678
2 ---- 9912323
3 ---- 9912366
准入表,有id 电话号码
id phone_no
6 --- 991267823
7 --- 991236621
8 --- 435443455
9 --- 243344333
我想查找与 users 表和 update 具有相同模式的 Admission's 表的所有电话号码 > 在用户表中。
所以我正在尝试这个
select phone_no from admission where phone_no REGEXP (SELECT phone_no
FROM `users` AS user
WHERE user.phone_no REGEXP '^(99)+[0-9]{8}')
但我收到此错误子查询返回超过 1 行
寻求帮助。
【问题讨论】:
-
“具有相同的模式”究竟是什么意思?从您的示例中猜测,它实际上是“开始于”吗?
-
用户表和准入表都有相同的电话号码,以 99 开头,但用户表缺少尾随 2 位。首先,我想从录取表 '^[99]+[0-9]{8}' 中过滤所有这些号码,然后将用户的电话号码 9912678 与录取的电话号码 991267823 匹配
-
如果我查询以这种方式格式化的用户表的数据 '9912678|9912323|9912366' 查询执行得很好,但我不知道该怎么做。谢谢
-
模式“[99]+”应该是什么意思?它等于'[9]+',即等于'9+'。也许你的意思是“(99)+”或者只是“99”。
-
@PaulSpiegel 是的,你是对的。应该是'(99)+'
标签: mysql regex subquery pattern-matching