2011-02-28 99 views
-2

我需要從剛剛添加的新行相關的表中選擇5行。相關行mysql查詢

我在一個廣告網站上工作,當用戶發佈一個新廣告時,我想鏈接5個與此廣告相關的廣告。

該標準是在存儲在數據庫中的其他廣告的標題中搜索單詞列表(從剛剛添加的新廣告的標題中提取)。

這是一種在MySQL中使用正則表達式來驗證單個廣告標題中的多個需求。

有人可以幫助我建立MySQL查詢得到這個結果

例如:新的廣告

標題:「賣新Android智能手機」 提取的世界:「機器人」和「智能手機」

一些廣告:

1 - 「搜索再見新的智能手機」

2 - 「賣的Android產品」

3 - 「新的智能手機」

4 - 「好暢銷的轎車」

6 - 「NWX wxclkn WXC」

查詢應返回的ID 1,2,3廣告。

+1

此外,您的文章可以使用更多的clarific通貨膨脹。很難說你在問什麼。 – JohnFx 2011-02-28 23:07:04

+0

您希望我們幫助您重塑Google AdWords嗎?這裏有一個提示:我很確定他們不使用MySQL *或* regexes。但是我相當確定Web是以某種方式參與的。 – 2011-02-28 23:34:13

+0

@JohnFx根本無法重塑Google AdWords – NoOneElse 2011-03-01 01:01:26

回答

0

感謝您的回答

我foun達的解決方案做到不添加標記的廣告只是我公頃已經從新增extracte需要添加單詞,然後創建

提取的詞MySQL正則表達式「Android」 的 「智能手機」

SQL:

SELECT * FROM ad_table WHERE title REGEXP '[[:<:]]android[[:>:]]|[[:<:]]smartphone[[:>:]]'

+0

同義詞呢? '手機'和'電話'和'smarthphone'。而且,例如,'Android'可能被認爲與'iPhone'有關。如果您希望這項工作有效,您確實需要一些標籤系統,但廣告標題中沒有足夠的字詞來依賴該標籤系統。另外,'REGEXP'選項比較慢... – nico 2011-03-01 17:03:10

2

最簡單的方法是將標籤與每個廣告關聯,以便您可以通過標籤本身關聯廣告。你不能只依靠標題,因爲例如「賣手機」將與你的例子有關,即使它沒有任何共同之處。

然後,您將檢索與廣告關聯的標籤,然後查找其他具有相同標籤的廣告,並根據匹配標籤的數量對結果進行排序。