У меня есть таблица:
Language:
Seq INT | ParentLanguageSeq INT | Name VarChar
-------------------------------------------------
0 | NULL | English
1 | 0 | English (UK)
2 | 1 | English (Irish)
И запрос:
SET @searchSEQ = 2;
SELECT
l.seq,
@pv := l.parentlanguageseq parentlanguageseq,
l.name
FROM
(
SELECT * FROM `language` ORDER BY seq DESC
) as l
JOIN
(
select @pv := @searchSEQ
) tmp
WHERE
l.seq = @pv;
В MYSQL 5.6 запрос будет возвращать все три строки с searchSeq
, установленным на 2
.
Seq INT | ParentLanguageSeq INT | Name VarChar
-------------------------------------------------
2 | 1 | English (Irish)
1 | 0 | English (UK)
0 | NULL | English
Если searchSeq
был установлен на 1
, он вернет две строки.
Seq INT | ParentLanguageSeq INT | Name VarChar
-------------------------------------------------
1 | 0 | English (UK)
0 | NULL | English
Если бы searchSeq
был установлен на 0
, он вернул бы две строки.
Seq INT | ParentLanguageSeq INT | Name VarChar
-------------------------------------------------
0 | NULL | English
Однако в MariaDB 10 он возвращает только строку с английским (ирландским) вместо всех трех. Когда searchSeq
установлен на 2
.
Seq INT | ParentLanguageSeq INT | Name VarChar
-------------------------------------------------
2 | 1 | English (Irish)
Как мне это сделать в MariaDB 10.1?