需要帮助在名为phone的字段上对客户数据库执行查询。
select * from customers where phone REGEXP '123456|565834'
我需要一种方法来选择regex的匹配部分matched in select子句。最终结果应该是
Name Matched Phone
Naveen 123456 12345678
Naveen2 123456 123456789
Arun 565834 9565834
Arun2 565834 10565834
p、 这必须是一个查询,并且没有其他唯一键可按进行分组
3条答案
按热度按时间ryoqjall1#
使用
INSTR
mysql的功能。前任。INSTR(regex, phone)
```SELECT SUBSTRING('123456|565834',INSTR('123456|565834',phone),10)
FROM customers
WHERE phone REGEXP '123456|565834';
3gtaxfhh2#
你可以使用
CASE
此处的表达式:请注意,您不一定需要使用
REGEXP
在这种情况下,LIKE
可能就够了。但是使用REGEXP
imo更容易阅读,而且如果将来需要,它还可以让您处理更复杂的逻辑。4c8rllxm3#
如果您不局限于只使用mysql,那么可以尝试使用shell脚本+mysql来传递Map值和搜索-不确定是否正确理解了需求。
我们可以循环Map字符串并实现。