当前位置: 首页 > 面试题库 >

在MySQL的LIMIT子句中使用变量

韦知
2023-03-14
问题内容

我正在写一个存储过程,其中有一个名为 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;

问题答案:

通过搜索找到了这篇文章。我在下面粘贴了相关文本。

这是一个论坛帖子,显示了准备好的语句的示例,可让您将变量值分配给limit子句:

http://forums.mysql.com/read.php?98,126379,133966#msg-133966

但是,我认为该错误应该引起注意,因为我无法想象过程中的准备好的语句将允许进行任何过程编译时优化。我感觉到准备好的语句是在过程的运行时编译和执行的,这种概率对效率有负面影响。如果limit子句可以接受常规过程变量(例如,过程参数),则数据库仍可以在过程中对其余查询执行编译时优化。这可能会更快地执行该过程。我不是专家。



 类似资料:
  • 本文向大家介绍如何在MySQL LIKE子句中使用用户变量?,包括了如何在MySQL LIKE子句中使用用户变量?的使用技巧和注意事项,需要的朋友参考一下 使用该函数,我们可以在LIKE子句中使用用户变量。语法如下。 为了理解上述语法,让我们首先创建一个表。创建表的查询如下。 使用insert命令在表中插入记录。查询如下。 使用select语句显示表中的所有记录。查询如下 以下是输出。 这是在LI

  • 主要内容:语法,实例SQLite 的 LIMIT 子句用于限制由 SELECT 语句返回的数据数量。 语法 带有 LIMIT 子句的 SELECT 语句的基本语法如下: 下面是 LIMIT 子句与 OFFSET 子句一起使用时的语法: SQLite 引擎将返回从下一行开始直到给定的 OFFSET 为止的所有行,如下面的最后一个实例所示。 实例 假设 COMPANY 表有以下记录: 下面是一个实例,它限制了您想要从表中

  • 问题内容: 我一直在大量阅读有关SQL SERVER LIMIT子句的替代方法。太令人沮丧了,他们仍然拒绝适应它。无论如何,我真的没办法解决这个问题。我要转换的查询是这样的… 任何帮助将不胜感激,谢谢。 问题答案: 在SQL Server 2012中,支持ANSI标准/ 语法。我在博客上发表了这篇文章,这是官方文档(这是的扩展)。为SQL Server 2012转换的语法为: 在此之前,您需要使用

  • 本文向大家介绍我们如何将MySQL DISTINCT子句与WHERE和LIMIT子句一起使用?,包括了我们如何将MySQL DISTINCT子句与WHERE和LIMIT子句一起使用?的使用技巧和注意事项,需要的朋友参考一下 通过在MySQL查询中将WHERE子句与DISTINCT子句一起使用,我们将基于一个条件,即MySQL返回结果集的唯一行。通过在MySQL查询中使用LIMIT子句和DISTIN

  • 问题内容: 假设我有这张桌子 我想返回第一行,其中所有先前现金的总和大于某个值: 因此,例如,如果我要返回第一行,其中所有先前现金的总和都大于500,则应返回到第3行 如何使用mysql语句执行此操作? 使用 不起作用 问题答案: 您只能在HAVING子句中使用聚合进行比较: 该子句要求您定义GROUP BY子句。 要获得第一行,其中所有先前现金的总和都大于某个值,请使用: 由于聚合函数发生在子查

  • 问题内容: 我想搜索我的表,其中有一列名字和一列姓氏。我目前接受来自某个字段的搜索字词,并将其与两列进行比较,一次 这对于单个单词搜索词可以正常工作,但结果集包含名称为“ Larry”的所有人。但是,如果有人输入名字然后输入空格,然后输入姓氏,我希望搜索结果更窄。我已经尝试了以下方法,但没有成功。 有什么建议吗? 编辑: 我正在测试的名称是“拉里·史密斯”。数据库将“ Larry”存储在“ fir