gpt4 book ai didi

php - 当一个字段可能包含也可能不包含值时,mysql选择数据

转载 作者:行者123 更新时间:2023-11-30 23:31:32 26 4
gpt4 key购买 nike

有一个 MYSQL 查找表,返回在一定数量的完成者 (N) 中某个位置 (P) 收到的分数,具有多种格式 (points_id)。不同的点结构用于不同的事件。有时奖励的分数取决于完成者的数量(N)有时他们不这样做。这是表格的简短版本,有两个示例结构。points_id -1 点取决于 N Point_id -2 点不依赖。

点数

       points_id |   P   |   N   | points |
1 | 1 | 3 | 90 |
1 | 1 | 2 | 85 |
1 | 1 | 1 | 80 |
1 | 2 | 3 | 60 |
1 | 2 | 2 | 50 |
1 | 3 | 3 | 30 |
3 | 1 | | 100 |
3 | 2 | | 90 |
3 | 3 | | 80 |
3 | 3 | | 70 |

所以我的问题是:1)有没有办法把通配符放在表数据中。例如,如果显示空白的 N 列中有一个 %我做了这个查询。

SELECT points from t1 WHERE points_id=3 and P=3 and N=2 

它会返回 96??PS 我知道这行不通,但它展示了我的想法。

2) 我希望它更快,可以将它放在一个过程中以用于更大的查询。我猜除非有一种非常简单的方法可以完成上面显示的操作。最快的方法是在 points_id =3 的情况下为所有不同的 N 设置行。是真的吗?

最佳答案

您可能会考虑 UNION ALL:

SELECT points from t1 WHERE points_id=3 AND P=3
UNION ALL
SELECT points from t1 WHERE points_id=3 AND N=2

无论 P=3 还是 N=2,这都会得到结果。我复制了你的数据库模式并尝试了这个,它产生了:

points
------
80
70

如果您确实希望它能快速处理大量数据——您真的需要一个索引和/或主键。

关于php - 当一个字段可能包含也可能不包含值时,mysql选择数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10357145/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com