搜索MySQL数据库,其中字段包含符号

时间:2017-03-10 11:00:18

标签: php mysql

我的MySQL服务器上有一个位置数据库,包含英国邮政编码,邮政城镇,县和坐标。如果有人要搜索" connahs" (实际结果是" Connah' Quay"),因为没有包含撇号,所以不会返回任何结果。这同样适用于连字符和其他符号。

在这个例子中,邮政城镇" Connah's Quay"是正确的格式,所以我不能从数据库中删除该符号。

到目前为止,我的查询是:

SELECT * FROM uk_postcodes WHERE postal_town LIKE "connahs%" ORDER BY postal_town LIMIT 25

有什么方法可以搜索包含符号(connah' s)而不是(connahs)的字段,这样无论用户是否使用撇号,它都会返回结果?

2 个答案:

答案 0 :(得分:0)

使用mysql替换功能。查询将如下:

SELECT * FROM uk_postcodes WHERE  REPLACE( postal_town, "'", "" )   
LIKE "connahs%" ORDER BY postal_town LIMIT 25

希望它会对你有所帮助。

答案 1 :(得分:-2)

我假设您在代码中使用php。

// get the value of searched word from searchbox or something...
$keyword = $_POST['uk_postcodes'];
// avoid sql injection to, also read for special characters
$keyword = mysql_real_escape_string($keyword);
$keyword = stripslashes($keyword);

$query = "SELECT * FROM uk_postcodes WHERE postal_town LIKE %$keyword ORDER BY postal_town LIMIT 25";

在上面的代码中,您可以输入任何内容!