2014-07-06 82 views
0

我有這個mysql查詢,它搜索特定的單詞。例如,讓我們搜索殺戮地帶陰影下降(存儲在一個變量):在mysql中轉義冒號LIKE查詢

select * from games where title like 'Killzone Shadow Fall' 

它返回空。雖然這個條目在數據庫中存在'殺戮地帶:暗影墜落'

當某人搜索'殺戮地帶暗影墜落'時,返回'殺戮地帶:暗影墜落'應該做些什麼?

回答

0

你不需要逃避冒號,嘗試更改爲:

select * from games where title like 'Killzone%' 

這將從表中返回所有記錄,其中title字段的值與Killzone

+0

Ahhh我明白了..我在搜索值前後都有。感謝它現在的作品:) – user3672357

+0

不客氣.. :) –

+0

雖然它需要多一點修改。我所要做的只是用% – user3672357

0

在像_字符開始取代了只有1個字符一個字符串:

select * from games where title like 'Killzone_ Shadow Fall' 

但是最好是使用%與您的搜索相匹配的一組更大的事件。

0

我建議用%替換「」。

$searchTerm = "Killzone Shadow Fall'; 

$query = 'SELECT * FROM games WHERE title LIKE "'.str_replace(' ','%',$searchTerm).'"'; 
+0

替換了空格是我在@ Sudhir的回答後做了同樣的事情。謝謝! – user3672357