回答編集履歴

1

sample

2021/09/08 08:28

投稿

yambejp
yambejp

スコア117820

answer CHANGED
@@ -1,2 +1,24 @@
1
1
  LIMITには数値しか指定できません
2
- mysqlだけで完結したいならプロシージャなどで処理するしかないでしょう
2
+ mysqlだけで完結したいならプロシージャなどで処理するしかないでしょう
3
+
4
+ # sample
5
+ 蛇足ながらprecedureでlimitを実行する
6
+ ```SQL
7
+ /* 以下予め実行して作っておく */
8
+ drop procedure if exists sql_limit;
9
+ delimiter //
10
+ create procedure sql_limit(IN s varchar(200),IN l int)
11
+ begin
12
+ set @sql=concat(s,' LIMIT ',l);
13
+ prepare stmt from @sql;
14
+ execute stmt;
15
+ end ;
16
+ //
17
+ delimiter ;
18
+ ```
19
+ あとはlimitの値に式をいれる
20
+ ```SQL
21
+ call sql_limit('select * from tbl',DATEDIFF('2021-3-24','2021-3-19') );
22
+ とか
23
+ call sql_limit('select * from tbl',1+2 );
24
+ ```