我有2个mysql表property
和building
。在property
表中,我有一个名为unitnumber
的字段,此字段中的值类似于1a
,2b
等。在building
表格中,我有一个字段名为address
的{{1}} PHP's
格式。该值将类似于urlencoded
现在我想实现一个搜索功能,以便在用户输入26+Dovedale+Place%2C+Parnell
时我需要从数据库中提取结果。
迄今已实施:
1a, 26 Dovedale
但现在的问题是,当我准备 $keyword = preg_replace('/[^a-zA-Z0-9-]/', '', $_REQUEST['keyword']);
$keyword = str_replace(" ", "-", $keyword);
$a->rqNotEmpty('keyword', $keyword);
$query = "SELECT * FROM `buildings` b left join properties p on p.buildingId=b.id
WHERE concat(p.floor,p.number,b.address) LIKE '%".$keyword."%'
or concat(p.number,p.floor,b.address) LIKE '%".$keyword."'";
变量时,我会得到类似$keyword
的内容,而1a26Dovedale
之后的数据库中的值将是CONCAT
之类的某些值。我不能urlencode $ keyword,因为数据库不是标准化的形式。数据库我的地址之间有2个空格。那么有没有办法1a26+Dovedale+Place%2C+Parnell
mysql字符串?我在这里处理近400万条记录!!
答案 0 :(得分:1)
您可以尝试安装MySQL UDF(用户定义函数)以在MySQL中提供urlencode()
和urldecode()
函数。这是链接:http://freecode.com/projects/libmysqludf