2013-10-15 36 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

相關問題