微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

与mysql匹配百分比 说明

如何解决与mysql匹配百分比 说明

我一直在尝试使用 MysqL 创建一个算法,该算法返回匹配报价和匹配百分比的用户列表。如果用户符合报价的基本主要标准,他们将获得 70% 作为开始,如果他们符合某些次要标准,则匹配百分比加起来为 2%。

我还是不知道怎么做,如果你有任何想法,请赐教。提前致谢

 1. | User    | | Offer    |
 2. |:--------| |:---------|
 3. | city    | | city-lis |
 4. | age     | | age-min  |
 5. | gender  | | gender   |

列表项

如果这些标准满足那些用户应该得到 70% 作为匹配百分比,而不是如果他们满足其他标准,百分比上升

解决方法

根据我从你的问题中推断出的,这段伪代码可能会有所帮助:

SELECT username,68 +
  ((SELECT city = "example")*2) +
  ((SELECT gender = "m")*2) +
  ((SELECT age > 21)*2) AS score
FROM users
WHERE city = "example" OR gender="m" OR age > 21;

说明

我首先选择符合任何条件的用户,然后使用子查询生成分数。 (SELECT gender = "m") 类型的子查询如果为真(即:如果性别为 m)将导致 1。然后我将其乘以 2 以获得“2”的首选分数。如果性别与“m”不匹配,则结果将为 0。还有0 * 2 = 0。我以 68 分开始,因为您提到如果有任何字段匹配,则起始分数为 70。因为此结果中的所有行都将至少匹配其中之一,所以我减去了 2。

在 MySQL 中,您可以使用 SELECT 而无需定义要从中进行选择的表。查询 SELECT 1+1 将产生 2。当您将这些用作子查询时,您可以将结果中的字段用于各种技巧。我用它们为我的分数结果生成 1 或 0。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。