Mysql 向查询结果添加值

Mysql 向查询结果添加值,mysql,Mysql,创建表格tblstud( Student\u IDVARCHAR(15)非空默认值“”, Last\u NameVARCHAR(30)默认为空, First\u NameVARCHAR(30)默认为空, Middle\u NameVARCHAR(30)默认为空, Complete\u AddressVARCHAR(100)默认为空, CP\u学生编号VARCHAR(15)默认为空, 出生日期VARCHAR(30)默认为空, AgeINT(2)默认为空, SexSET('Male','Female

创建表格
tblstud
(
Student\u ID
VARCHAR(15)非空默认值“”,
Last\u Name
VARCHAR(30)默认为空,
First\u Name
VARCHAR(30)默认为空,
Middle\u Name
VARCHAR(30)默认为空,
Complete\u Address
VARCHAR(100)默认为空,
CP\u学生编号
VARCHAR(15)默认为空,
出生日期
VARCHAR(30)默认为空,
Age
INT(2)默认为空,
Sex
SET('Male','Female')默认为空,
出生地点
VARCHAR(100)默认为空,
Status
VARCHAR(30)默认为空,
Grade\u Level
INT(2)默认为空,
Average_Grade
INT(10)默认为空,
就读小学
VARCHAR(100)默认为空,
ElemSY
VARCHAR(30)默认为空,
High\u School\u Last\u就读
VARCHAR(100)默认为空,
HighSchoolSY
VARCHAR(30)默认为空, 家长/监护人的姓名,
职业
VARCHAR(30)默认为空, 父/监护人的地址VARCHAR(100)默认为空, 家长/监护人的CP编号VARCHAR(15)默认为空,
Section
VARCHAR(5)默认为空, 主键(
学生ID
) )引擎=INNODB默认字符集=1

我想写一个查询,根据他们的平均成绩显示第4-6项记录,并将其标记为“a”部分

我正在使用mysql,下面是我的代码:

UPDATE tblstud SET Section = 'A' 
FROM (SELECT * FROM tblstud ORDER BY Average_Grade DESC LIMIT 3 OFFSET)
提前感谢:)

试试这个:

UPDATE tblstud t1 INNER JOIN 
    (SELECT *, @rn := @rn + 1 AS row_num 
     FROM tblstud CROSS JOIN (SELECT @rn := 0) param
     ORDER BY Average_Grade DESC) t2
    ON t1.name = t2.name
SET t1.Section = 'A'
WHERE t2.row_num BETWEEN 4 AND 6;

是的,我该怎么办?请发布您的表定义。我可以复制并粘贴到我的sql上吗?错误代码:1054“on子句”中的未知列“t1.name”