2014-11-10 3 views
-1

Я пытаюсь получить строку максимального значения с помощью функции MAX() и с SQL LIKE-оператором в 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_score_4 и 40, но он производит best_score_1 и 40
Интересно, какую часть мне не хватает?

+1

Я предполагаю, что 'WHERE LIKE' опечатка и первоначально является' WHERE meta_key LIKE' в противном случае он будет выдавать ошибку ... – webeno

+0

о, да, извините, это была опечатка .. Спасибо, что указали это. – user3627265

ответ

0

Просто используйте ORDER BY с LIMIT 1 в этом случае:

SELECT meta_value, meta_key 
FROM Table 
WHERE meta_key LIKE '%best_score%' 
ORDER BY meta_value DESC 
LIMIT 1 
+0

это работает на mysql? Я получаю ошибки в синтаксисе sql. Я искал ТОП-1, и он находится в документации. – user3627265

+0

Я понял, мне нужно использовать LIMIT вместо TOP – user3627265

+1

@JamesBlond: Возможно, вам придется добавить 'DESC' после' ORDER BY meta_value' – Wanderer

Смежные вопросы