使用限制和带有参数化的子查询在mysql5.7中不起作用,并且在mysql 5.6中很好

To simplify the question, I create a table

CREATE TABLE `a` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `link_id` int(11) DEFAULT NULL,
  `seq` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

And the sql is

SELECT A.*
FROM
  (SELECT ifnull(S.seq, L.seq) AS seq
   FROM a L
   LEFT JOIN a S ON L.link_id = S.id) AS A
ORDER BY A.seq DESC LIMIT ?

The code is good with mysql 5.6, But in mysql 5.7 it throw an error Error 1054: Unknown column 'A.seq' in 'order clause' I try it with golang and nodejs

package main

import (
    "github.com/jmoiron/sqlx"
    "fmt"
    _ "github.com/go-sql-driver/mysql"
)
func main()  {
    host := "127.0.0.1"
    user := "root"
    password := "123456"
    tmpdb, _ := sqlx.Open("mysql", fmt.Sprintf("%s:%s@(%s:3306)/test?charset=utf8&readTimeout=30s&writeTimeout=30s&timeout=30s", user, password, host))

    sql := "select A.* from (select ifnull(S.seq, L.seq) as seq from a L left join a S on L.link_id = S.id ) AS A order by A.seq desc limit ?"
    test := make([]interface{},0)
    err := tmpdb.Select(&test, sql, 10)
    fmt.Println(err, test)
}

It's weird that if i modify the sql, replace order by A.seq to order by seq, it's working again. And if i use complete sql without parameterized way, it's also working I wonder what is wrong?