在我的数据库中,我的电话号码为094-144-54 但我必须找到它们只有09414454
现在我有了这个:
0[^[:digit:]]*9[^[:digit:]]*4[^[:digit:]]*1[^[:digit:]]*4[^[:digit:]]*4[^[:digit:]]*5[^[:digit:]]*4
它有效,但有没有更短的方法来写这个?我知道\ D但我认为它不适用于MySQL RegtExp实现。
另外,如何选择这样的几行?
SELECT number FROM tb1 WHERE ((number REGEXP ' ... '), (number REGEXP ' ... '), ... );
这不起作用。
答案 0 :(得分:0)
我测试了一个从0开始并以4结尾的纯数字:
SELECT number FROM tb1 WHERE (number REGEXP '^0[[:digit:]]*4$');
或纯数字数字:
SELECT number FROM tb1 WHERE (number REGEXP '^[[:digit:]]+$');
此php改写输入字符串“09414454”:
<?php
$strPhoneNo = "09414454";
$strPhoneNo = substr(chunk_split($strPhoneNo, 3, '\-'), 0, -2);
//
// => "094\-144\-54"
//
$strSQL = "SELECT number FROM tb1 WHERE (number REGEXP '^$strPhoneNo$');";
//
echo "<pre>\n";
echo $strSQL;
echo "</pre>\n";
//
// $strSQL:
// SELECT number FROM tb1 WHERE (number REGEXP '^094\-144\-54$');
//...
?>