php - 比较字段并获取百分比

标签 php mysql

您好,再次感谢您调查这个问题。

我有一张供访客使用的 mysql 表。他们可以将自己喜欢的歌手添加到列表中。所以表格看起来很简单:

user_artist_favorites
id
user_id
artistName

假设 Moonwalker 有 4 位最喜欢的歌手:

 1. Michael Jackson
 2. Elvis Presley
 3. Ray Charles
 4. Stevie Wonder

用户Tester也得到了4位最喜欢的歌手:

 1. Michael Jackson
 2. Ray Charles
 3. Stevie Wonder
 4. Lady Gaga (sorry folks)

我现在想做的是比较这两个用户并输出如下内容:Moonwalker 和 Tester 的音乐品味有 75% 相同。

如何开始?谁能指出我正确的方向?

在此先感谢您提供的任何帮助。

最佳答案

Select T1.user_id
    , Count( T2.user_id ) / Count( T1.user_id ) * 100.0 As PercentMatch
From user_artist_favorites As T1
    Left Join user_artist_favorites As T2
        On T2.artistname = T1.artistname
            And T2.user_id = 'Tester'
Where T1.user_id = 'Moonwalker'
Group By T1.user_id
Union All
Select T1.user_id
    , Count( T2.user_id ) / Count( T1.user_id ) * 100.0
From user_artist_favorites As T1
    Left Join user_artist_favorites As T2
        On T2.artistname = T1.artistname
            And T2.user_id = 'Moonwalker'
Where T1.user_id = 'Tester'
Group By T1.user_id

Union All 查询的第一部分返回 Tester 与 Moonwalker 相似的百分比。第二个查询返回 Moonwalker 与 Tester 相似的百分比。

关于php - 比较字段并获取百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5175345/

相关文章:

用于单个 MySQL 多行 INSERT 的 PHP,每行都有 LAST_INSERT_ROW?

php - SSH 连接到我的共享主机后,如何告诉 Deployer 使用不同的 PHP 版本?

php - 在 Prestashop 1.7 中覆盖 Controller

mysql - 正则表达式匹配两个模式之间的数字

mysql - SQL如何使用日期字段按财政季度和年度分组

mysql - 如何通过escape()方法在node中使用mysql全文搜索?

java - 在php中创建JSONArray并将其发送到android

php - php内存不足错误

php - 如何检查 CodeIgniter 中单个 where 子句的多个条件?

mysql - Magento -- MySQL 大量 CPU 使用率,然后在批量更新产品类别时失败