我需要在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"工作得很好,但这不是我需要的。
谢谢!
答案 0 :(得分:1)
您可以按以下方式重写查询
SELECT
*
FROM
bloques
WHERE `area` LIKE '%24%'
AND '452123456789' LIKE CONCAT('%', `block`, '%')
另外,对于块中的第一个匹配数字,您不需要在两侧使用通配符,只需将其写为CONCAT(block, '%')
和区域area = '24'
Demo