我可以在SQL查询条件中使用trim

Mic*_*ick 1 php sql

嗨,我正在我的数据库中创建一个反向电话号码查找.我有一个用户输入电话号码的框(在我的例子中,数字是01772708200 NO SPACES等)我想要做的是查询我的sql数据库并返回匹配的结果.问题是我的数据库包含不同格式的数千个数字(我应该在开始时将其格式化,但我没有)并且可能的数字可以表示为01772 708200或01772 708 200等)

我已经包含了一些脚本,我认为它会削减搜索条件,但它不起作用;

    $value="01772708200" ; 
    $condition = "TRIM(phone1) LIKE '%$value%' ";
    $result = mysql_query("SELECT * FROM major WHERE $condition ")  ;
Run Code Online (Sandbox Code Playgroud)

value是用户输入的数字,为了清楚起见,此处仅显示为变量.
phone1是我的db表中名为major的电话号码.

任何人都可以建议我做错了吗?

谢谢

Pek*_*ica 8

TRIM()只删除前导和尾随空格,因此01772 708200仍然保持不变.你需要使用REPLACE().

您也可以()-使用REGEXP操作员烹饪一些无视其他内容的东西.


Joh*_*ker 5

你可能想做点什么

$condition = " REPLACE(phone1, ' ', '') LIKE '%$value%'";
Run Code Online (Sandbox Code Playgroud)