2013-10-15 92 views
0

我的网站有一个搜索框。我有一个数据库字段值:“宠物的名字是吉米”。当有人像“宠物名称”一样搜索时,我需要获取该行。有什么办法只比较mysql WHERE条件中的字母数字值吗?这是“宠物的名字”“宠物名称”应返回相同的行。这是比较需要是类似的:“petsname = petsname”。只有字母数字字符进行比较。Mysql:如何修剪和比较数据库字段与字母数字值?

我试过mysql REPLACE替换"'",但我坚信现在有更好的解决方案。

+1

[mysql中搜索忽略撇号]的可能重复(http://stackoverflow.com/questions/4351337/ignoring-apostrophes-in-mysql-搜索) – tlenss

+0

不仅撇号,我需要避免所有特殊字符,而不使用MySQL“REPLACE”。这是比较需要是类似的:“petsname = petsname”。只有字母数字字符进行比较。 –

+1

用这个信息更新你的文章!并进一步阅读关于'SOUNDEX'的页面。 – tlenss

回答

0
$str = "Pet's name is Jimmy"; 

$str1 = addslashes($str); // Outputs: Pets name is Jimmy 

你可以做这样的事情

SELECT * FROM pet WHERE name like '%$str1%'; 
+0

请再次探讨这个问题,它是关于mysql'WHERE'的情况。 –

+0

感谢您的回答。当有人搜索“宠物”而不是“宠物”时,我需要返回同一行。 –

+0

如果你想删除特殊的字符和搜索请尝试这个'$ str = preg_replace('/ [^ A-Za-z0-9 \。 - ] /','',$ str;'' AZ,az,0-9,点,连字符和空格 – user2092317

相关问题