MySQL新手求助:使用SELECT、ORDER BY等语句时出现语法错误
问题解答
错误原因
使用SQL_CALC_FOUND_ROWS时,SELECT关键字后必须明确指定要查询的列(比如用*代表所有列,或者指定具体列名),不能直接衔接FROM子句。你的语句里SELECT SQL_CALC_FOUND_ROWS后缺少列或通配符,违反了MySQL的语法规则。
修正后的SQL语句
如果需要查询表中所有列:
SELECT SQL_CALC_FOUND_ROWS * FROM personas ORDER BY nombre ASC LIMIT 0, 10;
如果只需要特定列(例如id、nombre):
SELECT SQL_CALC_FOUND_ROWS id, nombre FROM personas ORDER BY nombre ASC LIMIT 0, 10;
补充说明
SQL_CALC_FOUND_ROWS的作用是让MySQL计算去掉LIMIT限制后会返回的总行数,执行完上述查询后,你可以通过SELECT FOUND_ROWS();获取这个总条数,这在分页场景中很实用——能同时拿到当前页数据和总数据量。
内容的提问来源于stack exchange,提问作者Abuelito
相关产品推荐
相关产品推荐

