2009-12-28 2 views
11

Я пытаюсь использовать тест MySQL для тестирования некоторых запросов. Но я бегу к ошибке.MySQL Benchmark

SELECT benchmark (10000, (select title from user)); 

и взамен я получаю эту ошибку;

ERROR 1242 (21000): Subquery returns more than 1 row 

Кто-нибудь знает, как оценивать запрос?

Благодаря

ответ

10
select title from user 

Это возвращает несколько строк, которые не будут работать.

Обратитесь к этой ссылке: http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_benchmark

Выражение вы передаете должно возвращать скалярный результат.

Вам нужно изменить запрос таким образом, что он возвращает одну строку: например:

select title from user where user_name = 'some_user' 
-1

http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_benchmark От

только скалярные выражения могут быть использованы. Хотя выражение может быть подзапросом , оно должно возвращать один столбец и не более одной строки. Для примера , BENCHMARK (10, (SELECT * FROM t)) потерпит неудачу, если таблица t имеет больше , чем один столбец или более одной строки.

Попробуйте

SELECT BENCHMARK(10000, (SELECT title FROM user LIMIT 1)); 
+1

Примечание: В то время, что делает исправить ошибку, на самом деле это не поможет ему проверить запрос, который он хочет проверить. –

+1

Я согласен с этим. Я бы не стал доверять эталону. –