在我的網站上,我允許用戶選擇他們喜歡或感興趣的內容。這是使用預定義的下拉菜單完成的,因此每次用戶登錄該網站會獲得與他們具有相同興趣的用戶列表。PHP - MySQL搜索數據庫表返回的結果與百分比匹配
這是通過使用MySQL WHERE子句獲取登錄用戶的興趣(以db爲單位存儲)並與網站上的其他用戶進行匹配來完成的。但是我遇到麻煩的是如何在每個用戶旁邊顯示百分比或得分,以顯示他們與登錄用戶的興趣有多接近。
例如:
- 用戶1 - 60%的匹配到你的興趣
- 用戶1 - 30%的匹配到你的興趣
- 用戶2 - 20%匹配的興趣
每個用戶有5個不同的興趣,如果全部匹配比100%匹配。
表結構的一個示例:
CREATE TABLE IF NOT EXISTS `helloworld` (
`id` int(9) NOT NULL AUTO_INCREMENT,
`like1` varchar(300) NOT NULL,
`like2` varchar(300) NOT NULL,
`like3` varchar(300) NOT NULL,
`name` varchar(300) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;
例如查詢:
SELECT * FROM helloworld WHERE like1='football' AND like2='art'
我用COUNT
函數的思想,但我不確定?或者我應該使用子查詢?
編輯:我使用PHP的服務器端語言。用戶不能輸入自己的喜歡,必須使用預先定義的列表。
如果我有like1 ='art'和like2 ='football',我會匹配上面的示例查詢嗎? – Sparky
對不起,你不會匹配,因爲藝術總是在like2列不像1。用戶不能輸入或混合他們的喜好,他們必須從預定義列表中選擇(下拉菜單)。該網站是使用PHP和MySQL實施的,如果有幫助的話。 – TheDeveloper