mybatis中sql语句:
SELECT
t.m_id as 'id',
t.name,
t.numbers,
t.s_id as 'spId',
t.learned,
t.learning,
t.plan_finish_date as 'planFinishDate',
t.plan,
t.next_plan as 'nextPlan'
FROM(
SELECT
m.id as 'm_id',
m.name,
m.createdate,
s.numbers,
s.id as 's_id',
s.learned,
s.learning,
s.plan_finish_date ,
s.plan,
s.next_plan
FROM
member AS m
LEFT JOIN study_plan AS s ON m.id = s.m_id
ORDER BY
s.numbers DESC
LIMIT 10000
) t
GROUP BY t.name
ORDER BY t.createdate
我多粘贴了一些报错信息
Error querying database. Cause: java.sql.SQLException: sql injection violation, syntax error: syntax error, error in :'
) tmp_count',expect RPAREN, actual EOF tmp_count : select count(1) from (SELECT
t.m_id as 'id',
t.name as 'name',
t.numbers as 'numbers',
t.sp_id as 'spId',
t.learned as 'learned',
t.learning as 'learning',
t.plan_finish_date as 'planFinishDate',
t.plan as 'plan',
t.createdate as 'createdate',
t.next_plan as 'nextPlan'
FROM (
SELECT
m.id as 'm_id',
m.`name`,
m.createdate,
s.numbers,
s.id as 'sp_id',
s.learned,
s.learning,
s.plan_finish_date ,
s.plan,
s.next_plan
FROM
member AS m LEFT JOIN study_plan AS s ON m.id = s.m_id
) tmp_count
### Cause: java.sql.SQLException: sql injection violation, syntax error: syntax error, error in :'
) tmp_count',expect RPAREN, actual EOF tmp_count : select count(1) from (SELECT
t.m_id as 'id',
t.name as 'name',
t.numbers as 'numbers',
t.sp_id as 'spId',
t.learned as 'learned',
t.learning as 'learning',
t.plan_finish_date as 'planFinishDate',
t.plan as 'plan',
t.createdate as 'createdate',
t.next_plan as 'nextPlan'
FROM (
SELECT
m.id as 'm_id',
m.`name`,
m.createdate,
s.numbers,
s.id as 'sp_id',
s.learned,
s.learning,
s.plan_finish_date ,
s.plan,
s.next_plan
FROM
member AS m LEFT JOIN study_plan AS s ON m.id = s.m_id
) tmp_count
; uncategorized SQLException for SQL []; SQL state [null]; error code [0]; sql injection violation, syntax error: syntax error, error in :'
) tmp_count',expect RPAREN, actual EOF tmp_count : select count(1) from (SELECT
t.m_id as 'id',
t.name as 'name',
t.numbers as 'numbers',
t.sp_id as 'spId',
t.learned as 'learned',
t.learning as 'learning',
t.plan_finish_date as 'planFinishDate',
t.plan as 'plan',
t.createdate as 'createdate',
t.next_plan as 'nextPlan'
FROM (
SELECT
m.id as 'm_id',
m.`name`,
m.createdate,
s.numbers,
s.id as 'sp_id',
s.learned,
s.learning,
s.plan_finish_date ,
s.plan,
s.next_plan
FROM
member AS m LEFT JOIN study_plan AS s ON m.id = s.m_id
) tmp_count; nested exception is java.sql.SQLException: sql injection violation, syntax error: syntax error, error in :'
) tmp_count',expect RPAREN, actual EOF tmp_count : select count(1) from (SELECT
t.m_id as 'id',
t.name as 'name',
t.numbers as 'numbers',
t.sp_id as 'spId',
t.learned as 'learned',
t.learning as 'learning',
t.plan_finish_date as 'planFinishDate',
t.plan as 'plan',
t.createdate as 'createdate',
t.next_plan as 'nextPlan'
FROM (
SELECT
m.id as 'm_id',
m.`name`,
m.createdate,
s.numbers,
s.id as 'sp_id',
s.learned,
s.learning,
s.plan_finish_date ,
s.plan,
s.next_plan
FROM
member AS m LEFT JOIN study_plan AS s ON m.id = s.m_id
) tmp_count
你这两个sql也不一样啊
看一下你dao层的方法名和mapper中sql片段的id是否相同
试下把子查询里的 LIMIT 10000 这个去掉看还会不会报错
我看报错里面有 select count(1),是不是多个返回结果用单个对象接收了
你这里代码对sql加了一层统计总数处理,你这里代码报错的截图不完整,我看执行的sql已经不是你想象的那个sql了,先把完整报错的sql到数据库执行下
sql取别名,别名不用加单引号
你这两个SQL首先不一样 其次就是你的SQL是不是大小写的问题呢 可能跟你的java类大小写不匹配 但是数据库就不管这个了