У меня следующий запрос MySQL:
SELECT * FROM (SELECT * FROM paper ORDER BY id DESC) paper_sorted,
(SELECT @pv := 26) initialisation
WHERE find_in_set(id, @pv)
AND length(@pv := concat(@pv, ',', last_id))
ORDER BY @pv ASC LIMIT 0,15
http://sqlfiddle.com/#!9/9e2df/24
Это прекрасно работает в MySQL;Тем не менее, я работаю с базой данных MariaDB, и этот запрос не работает.В любом случае, переписать это, чтобы оно работало как для MySQL, так и для MariaDB?
Схема базы данных:
CREATE TABLE paper (
id INT,
last_id INT
);
INSERT INTO paper VALUES (19, 0);
INSERT INTO paper VALUES (20, 19);
INSERT INTO paper VALUES (21, 20);
INSERT INTO paper VALUES (22, 21);
INSERT INTO paper VALUES (23, 19);
INSERT INTO paper VALUES (24, 23);
INSERT INTO paper VALUES (25, 23);
INSERT INTO paper VALUES (26, 24);
MariaDB v. 10.3.18;MySQL v. 5.7.27
Этот запрос SQL должен получить все идентификаторы Parent.Как и в примере запроса, переменная @pv
равна 26 и, следовательно, получает 26-> 24-> 23-> 19.
Однако для MariaDB это не работает.Он возвращает только один ряд, который в MariaDB равен 26.Как переписать этот запрос для работы с MariaDB и MySQL?