select FIELD from TABLE order by FIELD LIMIT 1 OFFSET (select ceil(count(*)/2) from TABLE);
Я получаю сообщение об ошибке. Можно ли использовать 2-й оператор выбора таким образом, поскольку он будет возвращать только число. Если нет, то почему?
Вам нужно использовать динамический 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;