从MYSQL 5.6更改为MariaDB 10.1后,递归查询失败

时间:2019-06-05 15:32:30

标签: mysql mariadb

我有一张桌子:

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中做到这一点?

0 个答案:

没有答案
相关问题