mysql5 limit使用表达式的问题

mysql数据在分页的时候如:select*fromuserlimit0,5就是OK的。select*fromuserlimit(1-1)*5,1*5这种写法就不行。li... mysql数据在分页的时候如:select * from user limit 0,5 就是OK的。select * from user limit (1-1)*5,1*5 这种写法就不行。limit后面好像需要一个具体的值,而不是表达式,怎么才能让他支持表达式呢 展开
 我来答
等待的幸福快乐
推荐于2016-11-19 · 知道合伙人数码行家
等待的幸福快乐
知道合伙人数码行家
采纳数:1011 获赞数:35893

向TA提问 私信TA
展开全部
  表达方式:
  eval()函数的功能就是将括号内的字符串视为语句并运行,其用法为:

例如: eval('y1=sin(2)')就是相当于在matlab命令窗口输入了y1=sin(2)这条命令。
多在循环中使用,可以对多个名字有规则的变量或文件进行操作,
例一:
for x=1:5
eval(['y',num2str(x),'=',num2str(x^2),';'])
end
以上语句等价于执行以下5句:
ynum2str(1)=num2str(1^2);
ynum2str(2)=num2str(2^2);
ynum2str(3)=num2str(3^2);
ynum2str(4)=num2str(4^2);
ynum2str(5)=num2str(5^2);
例二:
subplot(711);plot(t,y);title('原始信号’);
for i=1:6
subplot(7,1,i+1);
plot(t,imf(i,:));
eval(['title(''IMF',int2str(i),''');']);
end
-------------------------
以上6行程序实际上是执行以下7条命令
subplot(711);plot(t,y);title('原始信号');
subplot(7,1,2);plot(t,imf(1,:));title('IMF1');
subplot(7,1,3);plot(t,imf(2,:));title('IMF2');
subplot(7,1,4);plot(t,imf(3,:));title('IMF3');
subplot(7,1,5);plot(t,imf(4,:));title('IMF4');
subplot(7,1,6);plot(t,imf(5,:));title('IMF5');
subplot(7,1,7);plot(t,imf(6,:));title('IMF6');
其中最后6条是通过循环里面执行的语句
这里主要是通过eval()函数实现了输出title('IMFi');这个语句
1.把 title('IMF 看做一个字符串
2.把i (i=1,2,3,4,5,6)这个浮点型变量以字符的形式输出
3.把 '); 看做一个字符串
以上三部分整合起来就是 输出命令 title('IMFi');
其中值得注意的是想要输出单撇号,用''代替'即可,就好像C语言用\\代替\是一个道理,都属于特殊符号。
浪迹天涯的流星
2015-11-11 · 知道合伙人教育行家
浪迹天涯的流星
知道合伙人教育行家
采纳数:8922 获赞数:81537
对于基本办公软件比较擅长。

向TA提问 私信TA
展开全部
  在数据库中直接写表达式是错误的,但是要是用hibernate或者是mybatis你可以直接写成表达式的形式,他应该在传入数据库之前 就运算完毕,不会报错 ,如果用的是hibernate,有直接分页的函数,把参数传进去直接调用,即可。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
夜来雨早来晴
2015-11-04 · TA获得超过3.1万个赞
知道大有可为答主
回答量:9110
采纳率:60%
帮助的人:823万
展开全部
MySQL5.1中子查询是不能使用LIMIT的,报错: "This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery' "
这样的语句是不能正确执行的。
select * from message where id in (select id from message order by id desc limit 10);
但是,只要你再来一层就行。如:
select * from message where id in(select m.id from (select * from message order by id desc limit 10) as m) order by id asc
这样就可以绕开limit子查询的问题。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
斋如风0I5
2014-11-04 · TA获得超过598个赞
知道小有建树答主
回答量:453
采纳率:100%
帮助的人:276万
展开全部
在数据库中直接写表达式 貌似确实报错,但是要是用hibernate或者是mybatis你可以直接写成表达式的形式,他应该在传入数据库之前 就运算完毕,不会报错 ,如果用的是hibernate,有直接分页的函数,把参数传进去直接调用,即可
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式