相关疑难解决方法(0)

在MySQL中的LIMIT子句中使用变量

我正在编写一个存储过程,其中有一个名为my_size的输入参数,它是一个INTEGER.我希望能够LIMITSELECT声明中的子句中使用它.显然这是不支持的,有没有办法解决这个问题?

# I want something like:
SELECT * FROM some_table LIMIT my_size;

# Instead of hardcoding a permanent limit:
SELECT * FROM some_table LIMIT 100;
Run Code Online (Sandbox Code Playgroud)

mysql variables clause limit

40
推荐指数
5
解决办法
5万
查看次数

存储过程,在LIMIT表达式中使用变量

我有一个存储过程,如果我在没有变量的情况下编写以下查询,则all:运行良好

 CREATE PROCEDURE `some_proc` ()
 BEGIN
 SELECT blabla FROM  mytable ORDER BY id LIMIT 3,1
 .....
Run Code Online (Sandbox Code Playgroud)

但是,如果我在LIMIT表达式中使用变量作为起始编号,我会收到错误:

 CREATE PROCEDURE `some_proc` ()
 BEGIN
 DECLARE start INT;
 SET start = 3;
 SELECT blabla FROM  mytable ORDER BY id LIMIT start,1
 .....
Run Code Online (Sandbox Code Playgroud)

有没有办法在存储过程内的LIMIT表达式中使用变量?

mysql variables stored-procedures limit

7
推荐指数
2
解决办法
1万
查看次数

SQL选择所有但是表中的最后一行?

如何选择表格中的最后一行?

我知道我可以选择最后一个,SELECT item FROM table ORDER BY id DESC LIMIT 1但我想选择ALL而不是最后一个.

我怎样才能做到这一点?

选择一定数量并使用ASC将无效,因为我不知道有多少行.

我考虑过进行行计数并获取该数量并选择-1并使用ORDER BY id ASC但是有没有更简单的方法?

谢谢.

sql

3
推荐指数
2
解决办法
1万
查看次数

Mysql - 创建存储过程

使用Ver 14.12 Distrib 5.0.45(我知道它很旧),

文件:storedprocedure.sql包含:

DELIMITER //
CREATE PROCEDURE loadDashboard 
(
    IN limitStr int(11)
)
BEGIN
    SELECT table123.ID
    FROM table123
    ORDER BY date_lastmodified LIMIT limitStr;
END //
DELIMITER ;
Run Code Online (Sandbox Code Playgroud)

我已经尝试使用以下命令执行此命令行:

mysql -u root -p -h localhost DB < storedprocedure.sql

并从内部

mysql -u root -p -h localhost DB

mysql> *copied the code in from storedprocedure.sql

我得到的错误是: ERROR 1064 (42000) You have an error in your SQL Syntax; check the manual that corresponds to your MySQL server version …

mysql command-line stored-procedures

2
推荐指数
1
解决办法
4189
查看次数

标签 统计

mysql ×3

limit ×2

stored-procedures ×2

variables ×2

clause ×1

command-line ×1

sql ×1