2014-10-29 108 views

回答

2

您可以使用Boolean Full-Text Searches

SELECT `idREQUEST`, 
`USER_NAME`, 
`idCATEGORY`, 
`TITLE`, 
`DESCRIPTION`, 
`IMAGE_URL1`, 
`IMAGE_URL2`, 
`IMAGE_URL3`, 
`POST_DATE` 
FROM `requests` 
WHERE MATCH (`TITLE`,`DESCRIPTION`) AGAINST('+Samsung' IN BOOLEAN MODE) 

根據文檔

MySQL能夠使用執行布爾全文搜索IN BOOLEAN MODE修飾符,即 。使用此修飾符,某些字符 在搜索 字符串的單詞的開頭或結尾處具有特殊含義。在以下查詢中,+運算符表示需要分別存在一個 字,以便匹配 發生。

DEMO

+0

我認爲這個表現比使用'where like'和'or'子句更好,因爲它默認實現了。雖然我不太確定。關於表演的任何想法@M Khalid Junaid? – Payam 2014-10-29 11:40:24

+1

@Payam是因爲全文索引使用 – 2014-10-29 11:49:29

+0

感謝它的工作性能是比類似更好...你可以請看看這個問題也http://sqlfiddle.com/#!2/89e95/1 我想得到聊天的最後一條消息,但它只返回時間不是消息和消息ID – 2014-10-29 12:05:29

0

這查詢查找瓷磚和描述,其價值僅僅是'三星'但是表中沒有隻有'三星'的條目。因此,我建議你使用%

SELECT `idREQUEST`, `USER_NAME`, `idCATEGORY`, `TITLE`, `DESCRIPTION`, 
`IMAGE_URL1`, `IMAGE_URL2`, `IMAGE_URL3`, `POST_DATE` 
FROM `requests` 
    where `TITLE` like '%Samsung%' or `DESCRIPTION` like '%Samsung%' 

This is the link

+0

是@Payam我可以,但我有全文要求反正能否請您看看這個問題也sqlfiddle.com/#!2/89e95/1我想要得到的最後消息聊天,但它只返回的時間不是消息和消息ID – 2014-10-29 12:14:50

+0

@pritinarang可以,如果我改變查詢結構?我不明白你爲什麼會用if語句。 – Payam 2014-10-29 12:37:18

+0

如果用於獲得對方 – 2014-10-29 12:40:29