Использование SELECT с OFFSET

0
select FIELD
from TABLE
order by FIELD
LIMIT 1
OFFSET (select ceil(count(*)/2) from TABLE);

Я получаю сообщение об ошибке. Можно ли использовать 2-й выборный оператор таким образом, поскольку он будет возвращать только число. Если нет, то почему?

  • 0
    Вы не можете использовать SELECT здесь, потому что это проблема проверки SYNTAX.
  • 0
    Можете ли вы уточнить, то же самое утверждение выбора можно использовать where или having
Показать ещё 3 комментария
Теги:
mysql-error-1064

1 ответ

4
Лучший ответ

Вам нужно пойти с динамическим MySQL с этим.

SET @OFFSET = "( SELECT CEIL(COUNT(*) / 2) FROM test )";

SET @SQL = "
 SELECT 
  a
 FROM 
  test
 ORDER BY a
 LIMIT 1
 OFFSET ?
";

PREPARE dynamic FROM @SQL;
EXECUTE dynamic USING @OFFSET;
  • 0
    Он не дает никакой ошибки, но смещение не работает, так как он дает только первое значение поля. Вы можете попробовать добавить несколько строк в таблицу, каждый раз, когда она возвращает первый элемент строки независимо от смещения
  • 2
    «ВЫБЕРИТЕ CEIL (COUNT ( ) / 2) ОТ теста»; должно быть (ВЫБЕРИТЕ CEIL (COUNT ( ) / 2) ОТ теста);
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню