2013-09-26 295 views
1

我想为我的网站创建一个查询,用户在其中输入他的手机号码,页面将搜索数据库(我使用MYSQL)来查找可能的载体。到目前为止,我尝试过这样的事情,搜索查询的前缀

“选择CARRIER_NAME从Carrier_info其中prefix像 '前缀%'”

我Carrier_info表:

==== ============ ====== 
ID  carrier_name prefix 
==== ============ ======= 
1  A   88017 
2  B   88019 
3  C   91 
4  D   8801 

的问题是,当我像880171那样搜索一个数字......它不会给我带来任何结果。所以,我试着只搜索部分工作的前5位数字。但由于前缀表具有不同的数字位数,例如88017,91,8801,因此会产生问题,我无法专门用前5位数字修复搜索。

任何帮助或建议,将不胜感激。

+0

你需要搜索前5个,还是可以选择整个前缀如%prefix%? – RobAtStackOverflow

+0

是的,没有。我需要搜索第一个x位数。问题是x不是固定的。它可以是前5或前2。%前缀%我认为不适用于我。用户将输入像这样XXXXXXXXXXXXXX,我需要使用这11-15位数字来找出它与我的数据库匹配。用我目前的数据库,单个前缀行的最大数字位数是5.我可以假设我不会搜索超过前5位数字。 – muttalebm

回答

1

尝试这样的事情,

SELECT Carrier_name FROM Carrier_info WHERE '880171' LIKE CONCAT(`prefix`,"%") 

在上面的查询prefix是字段名称,你可以替换880171与您要搜索的任何数字。