MySql儲存過程中limit傳參

工程師WWW發表於2014-10-25

最近做專案用到了MySql資料庫,感覺還是蠻好用的,但是有同事前幾天寫儲存過程的時候老調不通,我看了看後發現把limit語句後面帶的引數隨便改成一個數字就除錯通過了,不知道是MySql當初就這麼設計的還是一個bug。後來在網上找到一個方法可以通過傳引數的方法解決該問題:

 set @stmt = concat('select * from ',table_name,' limit ?,?');  //table_name 是引數, 要寫死則如'slect * from table_name',  limit前要有空格,保證連線起來單詞有間隔,否則會擠在一起.
  prepare s1 from @stmt;
  set @s1 = page_begin;
  set @s2 = page_end;
  execute s1 using @s1,@s2;


  deallocate prepare s1;

相關文章