mysql 的匹配百分比
matching percentage with mysql
我一直在尝试使用 MySQL 创建一个算法,该算法 returns 匹配报价的用户列表和匹配百分比。如果用户符合优惠的基本主要标准,他们将获得 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 匹配任何条件的用户,然后我使用子查询生成分数。 (SELECT gender = "m")
类型的子查询如果为真(即:如果性别为 m),将导致 1
。然后我将其乘以 2 以获得首选分数“2”。如果性别不匹配 'm',结果将为 0
。和 0 * 2 = 0
。我从 68 分开始,因为你提到如果任何字段匹配,起始分数为 70。因为此结果中的所有行都将至少匹配其中一个,所以我减去 2.
在 MySQL 中,您可以使用 SELECT 而无需定义 table 到 select 的来源。查询 SELECT 1+1
将产生 2。当您将这些用作子查询时,您可以使用结果中的字段来实现各种技巧。我用它们为我的分数结果生成了 1 或 0。
我一直在尝试使用 MySQL 创建一个算法,该算法 returns 匹配报价的用户列表和匹配百分比。如果用户符合优惠的基本主要标准,他们将获得 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 匹配任何条件的用户,然后我使用子查询生成分数。 (SELECT gender = "m")
类型的子查询如果为真(即:如果性别为 m),将导致 1
。然后我将其乘以 2 以获得首选分数“2”。如果性别不匹配 'm',结果将为 0
。和 0 * 2 = 0
。我从 68 分开始,因为你提到如果任何字段匹配,起始分数为 70。因为此结果中的所有行都将至少匹配其中一个,所以我减去 2.
在 MySQL 中,您可以使用 SELECT 而无需定义 table 到 select 的来源。查询 SELECT 1+1
将产生 2。当您将这些用作子查询时,您可以使用结果中的字段来实现各种技巧。我用它们为我的分数结果生成了 1 或 0。