表中有字符串
+1-123-456-7890
11234567890
+1 1234567890
1777555999
我有变量 $phoneNumber
. 我想在sql查询中传递变量以获得匹配的记录。例子: $phoneNumber
持有价值 1234567890
使用相同的变量,我想在一个查询中获取以下记录
+1-123-456-7890
11234567890
+1 1234567890
我想在一个查询中选择两个记录。如何将数据(11234567890)与以上保存的数字匹配?
5条答案
按热度按时间ndasle7k1#
试试这个!
正则表达式:
通过regxe101验证:
vd2z7a6w2#
重新考虑整体设计。
在把电话号码放进table之前先把它们清理干净。然后呢
SELECT
,另一个呢SELECTs
那些还没有写好的,将会很简单。vngu2lb83#
如果两者都有
$phonenumber
字符串列可能都有麻烦的字符,这很难用正则表达式解决。wqsoz72f4#
我通过使用
replace()
在查询中。我从变量中删除了特殊字符$phoneNumber
(不是通过sql,而是在将varable传递给sql之前)并将其与replace的字符串结果进行比较。SELECT phone FROM myTable where REPLACE(REPLACE(REPLACE(phone, ' ', ''), '+', ''), '-', '') = $phoneNumber;
kupeojn65#
我们可以按照这里已经建议的替换逻辑结合正则表达式来执行此操作,以便仅将电话号码与您想要的目标格式匹配:
演示