我有一张包含自由格式电话号码的表格(例如' 123-456-7890','(987)654-3210'或者' 123.456.7890& #39;)我正在用数字字符串搜索它们 - 例如,' 123456'。
现在,我必须做一堆替换(替换(替换(...广告恶意功能以去除错误的非数字字符然后使用' LIKE'搜索值搜索。
任何人都知道一种更简单的方法,只根据类型选择字段中的某些字符,而不是位置?
答案 0 :(得分:3)
答案 1 :(得分:0)
尝试使用正则表达式。如果你想从字符串中提取数字,你可以使用它:
$string = '123-456-7890';
preg_match_all('/\d+/', $string, $matches);
echo $matches; //will result in only digits
答案 2 :(得分:0)
尝试将数字分成三个不同的值,即
$first = '124';
$second= '456';
$third = '7890';
"WHERE (phone_number LIKE '%$first%' and LIKE '%$second%' and LIKE '%$third%')"
我不确定这是否与SQL的REGEXP
一样有效,但它应该可以正常工作,因为每个部分都被分割出来。如果数字在db:1245667890
中是这样的,则可能无效,因为您可以找到124
,456
和7890
,但数字不匹配。这个答案假定永远不会有一个实数。