回答編集履歴

1

sample

2021/09/08 08:28

投稿

yambejp
yambejp

スコア116738

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