我正在尝试使用max()函数和SQL中的SQL LIKE运算符来获取最大值的行。
Table
ID | meta_key | meta_value
---------------------------------
1 |best_score_1 | 10
1 |best_score_2 | 20
1 |best_score_3 | 30
1 |best_score_4 | 40
这是我的sql
SELECT MAX(meta_value), meta_key FROM Table WHERE meta_key LIKE '%_best_score%'
它显示了正确的最大值,问题是,meta_key显示错误,输出应该是best_core_4和40,但它产生了best_core_1和40
我想知道我缺了哪一部分?
在这种情况下,只需使用ORDER BY
和LIMIT 1
:
SELECT meta_value, meta_key
FROM Table
WHERE meta_key LIKE '%best_score%'
ORDER BY meta_value DESC
LIMIT 1