在我的數據庫中,我有一個包含產品的表格和另一個包含與每個te產品關聯的標籤的表格。MYSQL與多個WHERE獲得最接近的匹配
當用戶查看產品的頁面時,我想顯示他所查看的最「最相關的」(或最接近的)產品。
所以我們假設產品標有5個不同的標籤。我想獲得具有相同5個標籤的產品,然後是具有相同5個標籤中的4個的標籤,然後是具有相同5個標籤中的3個的那些標籤,等等...
要做到這一點,我猜我必須創建一個或多個MYSQL查詢,但我甚至不知道從哪裏開始。
匹配相同的5個標籤很容易,我可以使用WHERE tag ='?' AND tag ='?'...但是我怎樣才能得到其他的(4/5,3/5,2/5,1/5)?
任何幫助將不勝感激!
乾杯 史蒂芬
編輯
@Orbits:我的標籤都在不同的行...如果不是我大概可以做一個文本匹配但這是這種情況。一個標記一行由(ID,標籤,PRODUCT_ID)
@ cusimar9:不同的表,如在後表示:P
@vbence:我相信這是儘可能簡單..這裏是..但是我沒有連接表
產品:
CREATE TABLE `products` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
...
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
標籤:
CREATE TABLE `tags` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`type` varchar(70) NOT NULL,
`product_id` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=116 ;
都在同一領域的標籤?他們如何劃界? – Orbit 2011-03-04 14:52:42
或者是單獨的表中的標籤? – cusimar9 2011-03-04 14:56:17
請複製粘貼「CREATE TABLE」查詢的3個選擇,定義您的標記,產品和連接表。 (該產品的詳細信息可以省略)。 – vbence 2011-03-04 14:56:27