SELECT (SUM(MAX(identifier)+1) FROM student_ids WHERE state ='state' AND year='year');
SELECT (SUM(MAX(identifier)+1) FROM student_ids WHERE state ='state' AND year='year')
LIMIT 0, 25
MySQL说:文档 #1064-您的SQL语法有误;检查与您的MySQL服务器版本相对应的手册,以在'FROM student_ids WHERE state ='state'AND year ='year'附近使用正确的语法) 第1行的LIMIT 0,25' 我该如何解决错误
答案 0 :(得分:1)
SUM
函数用于获取多行中的列汇总。您不需要使用它来添加标量值:
SELECT MAX(identifier) + 1 AS max_id
FROM student_ids
WHERE state = 'state' AND year = 'year';
答案 1 :(得分:1)
除了@ tim-biegeleisen外,将`用作列名和表名,例如:`year`,`state`,...
因为您使用的某些字词已保留。 YEAR是保留字,如果将其用作列名,则可能会返回错误。 SQL认为您正在调用 year 函数,而不是名为 year 的列。
SELECT MAX(`identifier`) + 1 AS `max_id`
FROM `student_ids`
WHERE `state` = 'state'
AND `year` = 'year' ;
以下是有关mySQL中保留字的文档: https://dev.mysql.com/doc/refman/5.5/en/keywords.html