mysql - 优化包含同表子请求的SQL请求

标签 mysql sql

我有一个用 php 编写的 SQL 请求,我想对其进行优化。

我认为这是可能的,因为所有内容都在同一个表中。我不是 SQL 专家,我的搜索关键字(包括“share”和“results”/“sub”/“partial”)没有帮助。

SELECT C0.bestScore, C1.playerScore, C2.playerRank FROM 
(SELECT MAX(score) AS bestScore FROM `{$l_tableName}`) C0,
(SELECT MAX(score) AS playerScore FROM `{$l_tableName}` WHERE player_id = {$l_playerId}) C1,
(SELECT COUNT(*)+1 AS playerRank FROM `{$l_tableName}` WHERE score > (SELECT MAX(score) FROM `{$l_tableName}` WHERE player_id = {$l_playerId}) ) C2;

谢谢

最佳答案

你可以用这个清理前2部分,不完全确定第三部分,不清楚你在追求什么,分数怎么会大于同 table 的最高分数?

SELECT MAX(score) AS bestScore
     , MAX(CASE WHEN player_id = {$l_playerId}) THEN score ELSE '' END) AS playerScore
FROM `{$l_tableName}`

关于mysql - 优化包含同表子请求的SQL请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17125419/

相关文章:

php - 将字符串与返回意外结果的数字字段进行比较

php - mysql查询按上次发帖排序

MySQL查询计算列

PHP mysql 返回 null,硬编码 SQL 查询有效

mysql - 我正在尝试在 SQL 中正确使用插入查询

sql - 使用求和函数时如何避免 PG::NumericValueOutOfRange

mysql - View 更改有什么问题?

php - 多维数组+Foreach

php - Laravel - 分页随机记录

Mysql - 表锁定错误