2012-12-16 40 views
0

我正在製作一個網站,用於圖像庫網站,其中會有成千上萬的圖像。 我的表結構的圖像在這個環節 here用於圖像搜索的Mysql查詢

上現在我想的是,當這個詞的用戶搜索「粉紅色」它應該顯示從圖像表兩個圖像。但是,如果用戶搜索「粉紅色的花朵」,它應該只顯示第一張圖片。這只是一個例子。用戶甚至可能搜索「美麗的粉紅色花朵」... 我只需要mysql的查詢相同。我希望我的問題很清楚。預先感謝任何幫助和建議。

回答

0

在運行explode(' ', $serachTags)或其他東西來獲取每個標籤後,您可以這樣做。

SELECT 
    images.img_name, 
    images.img_url 
FROM 
    images, 
    connections, 
    tags AS tagA, 
    tags AS tagB, 
    tags AS tagC, 
    ... 
WHERE 
    images.img_id = connections.img_id AND 
    tagA.tag_id = connections.tag_id AND 
    tagA.tag_name = 'name1' AND 
    tagB.tag_id = connections.tag_id AND 
    tagB.tag_name = 'name2' AND 
    tagC.tag_id = connections.tag_id AND 
    tagC.tag_name = 'name3' AND 
    ... 

I.e。花卉和粉紅色,你可以這樣做:

SELECT 
    images.img_name, 
    images.img_url 
FROM 
    images, 
    connections, 
    tags AS tagA, 
    tags AS tagB 
WHERE 
    images.img_id = connections.img_id AND 
    tagA.tag_id = connections.tag_id AND 
    tagA.tag_name = 'flower' AND 
    tagB.tag_id = connections.tag_id AND 
    tagB.tag_name = 'pink' 
+0

安德烈亞斯哎,對不起回覆晚了......首先感謝查詢,但它似乎像我做的,你給我的查詢的一些錯誤...能你請給我一個精確的查詢,確切地說,'花'和'粉紅色'這兩個詞,這樣我就可以將它粘貼到我的本地主機來檢查它是否工作。謝謝您的幫助。 –

+0

已編輯答案,包括您要求的代碼=) –

+0

唉你的查詢din't工作。它返回零行結果:( –