2012-09-13 12 views
0

嗨我的數據庫查詢中有問題。SQL Like只接受「上下文」

$q = $this->db->query("SELECT * FROM (`knihy`) 
         WHERE `stav` = 1 
         AND (Autor1 LIKE '$vyraz' 
         OR Autor2 LIKE '$vyraz' 
         OR Autor3 LIKE '$vyraz' 
         OR Autor4 LIKE '$vyraz') 
         ORDER BY `id` desc LIMIT $limit OFFSET $offset "); 

的問題是,當我搜索例如用於「排版」,我有我的表中,例如在排Autor1內容:「Lorem存有」什麼都不會被發現。但是,如果我正在尋找lorem ipsum,那麼會發現那些領域。請問問題在哪裏?

+2

缺少'%'通配符? –

+1

在 – voodoo417

回答

6

您沒有使用正確的語法,如:

Autor1 LIKE '$vyraz' 

應該是:

Autor1 LIKE '%$vyraz%' 

沒有通配符,你只是做一個精確匹配。

+0

附近添加LIKE params'%'請記住,使用初始通配符會拋出您的索引。小心! –

+0

@AlainCollins--你知道,那是我從未想過的事。這是我今天學到的新東西! – andrewsi

+0

你的意思是「初始通配符會拋出你的索引」? – Geril