官方好像說過limit已經在5.6版本上支持了動態參數,但是測試時依然還是不行。
那么要解決limit動態參數唯一能做的就是使用字符串SQL拼接的形式,然后再進行執行。
一般有以下方式解決:
1、存儲過程拼接
2、函數拼接
3、視圖里拼接
4、當前查詢的session中使用
其實上面都是同一個意思,就是使用一個變量存取這個SQL,然后再執行這個變量。
樣例:
set @stmt = concat('select * from ',table_name,' limit ?,?'); prepare s1 from @stmt; set @s1 = page_begin; set @s2 = page_end; execute s1 using @s1,@s2; deallocate prepare s1;
參考:
http://blog.csdn.net/hellolongbin/article/details/1999817