我有這個mysql查詢,它搜索特定的單詞。例如,讓我們搜索殺戮地帶陰影下降(存儲在一個變量):在mysql中轉義冒號LIKE查詢
select * from games where title like 'Killzone Shadow Fall'
它返回空。雖然這個條目在數據庫中存在'殺戮地帶:暗影墜落'
當某人搜索'殺戮地帶暗影墜落'時,返回'殺戮地帶:暗影墜落'應該做些什麼?
我有這個mysql查詢,它搜索特定的單詞。例如,讓我們搜索殺戮地帶陰影下降(存儲在一個變量):在mysql中轉義冒號LIKE查詢
select * from games where title like 'Killzone Shadow Fall'
它返回空。雖然這個條目在數據庫中存在'殺戮地帶:暗影墜落'
當某人搜索'殺戮地帶暗影墜落'時,返回'殺戮地帶:暗影墜落'應該做些什麼?
你不需要逃避冒號,嘗試更改爲:
select * from games where title like 'Killzone%'
這將從表中返回所有記錄,其中title
字段的值與Killzone
在像_
字符開始取代了只有1個字符一個字符串:
select * from games where title like 'Killzone_ Shadow Fall'
但是最好是使用%
與您的搜索相匹配的一組更大的事件。
我建議用%替換「」。
$searchTerm = "Killzone Shadow Fall';
$query = 'SELECT * FROM games WHERE title LIKE "'.str_replace(' ','%',$searchTerm).'"';
替換了空格是我在@ Sudhir的回答後做了同樣的事情。謝謝! – user3672357
Ahhh我明白了..我在搜索值前後都有。感謝它現在的作品:) – user3672357
不客氣.. :) –
雖然它需要多一點修改。我所要做的只是用% – user3672357