2012-02-19 194 views
0

我需要提交查詢以搜索具有特定標籤的帖子。數據庫中的單元格是這樣寫的:「有趣的科技好」,所以每個詞都描述一個標籤。所以我寫了這段代碼,以便獲得帶有「有趣」標籤的帖子。PHP MYSQL:搜索字詞查詢

'SELECT * FROM `posts` WHERE `post_tag` = "funny" ORDER BY `post_id` DESC LIMIT 50' 

不幸的是,它沒有給我任何結果。這裏有什麼問題?

+0

你可以試試WHERE post_tag LIKE'funny%'..這會顯示你的記錄有'有趣'作爲你的標籤中的開始文本 – 2012-02-19 08:11:48

回答

1

使用LIKE關鍵字或以每個標籤1個標籤的方式存儲您的標籤。

SELECT * FROM `posts` WHERE `post_tag` LIKE "%funny%" ORDER BY `post_id` DESC LIMIT 50 

然而,這將發現的標籤,有其他標籤包括在內,因此對於「Java」的搜索也會找到「JavaScript的」,

0

試試這個。

SELECT * FROM `posts` WHERE `post_tag` LIKE "%funny%" ORDER BY `post_id` DESC LIMIT 50' 
0
 

'SELECT * FROM `posts` WHERE `post_tag` LIKE "%funny%" ORDER BY `post_id` DESC LIMIT 50' 

//OR to get tags starting with funny 
'SELECT * FROM `posts` WHERE `post_tag` LIKE "funny%" ORDER BY `post_id` DESC LIMIT 50' 
 

編號:LIKE

1

查詢WHERE post_tag LIKE "%fun%"也將匹配「搞笑」,「停業」等,但你很幸運,因爲MySQL還支持Perl樣式的正則表達式和你可以說

WHERE post_tag RLIKE "\bfun\b" 

(確保sql引擎看到反斜槓)。這隻會匹配「樂趣」作爲一個完整的單詞。