大家好,又见面了,我是你们的朋友全栈君。
mysql中limit后面不能使用运算符
进行分页查询的时候,如果写成以下sql,语句执行会报错:
select * from user where id = 123456 and code = 111
and create_date >= 20190101 and create_date <= 20190202
limit (1 - 1) * 1, 20
因为mysql中limit后面不能带运算符,只能是常量。
解决方法
使用concat
,动态sql。
set @sql = concat('select* from user where id= 123456 andcode= 111 and create_date >= 20190101 and create_date <= 20190202 limit', (1-1)*1,',20');
prepare texts from @sql;
execute texts;
这种方式说白了就是先计算出数值,再通过concat
函数拼接sql,再进行执行。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/128115.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...