我有一张桌子:
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中做到这一点?