MySQL搜索匹配第一个数字长号

时间:2014-10-19 05:42:41

标签: mysql

我需要在MySQL数据库中搜索,以了解某个手机号码所属的公司。

db看起来像这样:

公司|区域代码| BLOCK

Company1 | 2245 | 2245

公司2 | 24 | 452

Company3 | 145 | 45

基本上我有一个表格,我插入区号和数字。问题是区域代码是完全匹配的,而对于块,给出了一个长数字但是必须对该数字的第一个数字进行搜索(那些第一个数字的长度不同,因此我无法执行搜索以查找确切的数字与区号相同的马赫。)

搜索看起来像

24 452 123456789

输出:Company2

$raw_results = mysql_query("SELECT * FROM bloques
        WHERE (`area` LIKE '%".$query1."%') AND (`block` LIKE '%".$query2."%')") or die(mysql_error());

该代码没有显示结果,因为它查找了一个块" 452123456789"如果我寻找" 452"工作得很好,但这不是我需要的。

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以按以下方式重写查询

SELECT 
  * 
FROM
  bloques 
WHERE `area` LIKE '%24%' 
  AND '452123456789' LIKE CONCAT('%', `block`, '%')

另外,对于块中的第一个匹配数字,您不需要在两侧使用通配符,只需将其写为CONCAT(block, '%')和区域area = '24'

Demo