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

MySQL DECLARE中的​​SELECT INTO变量会导致语法错误?

严嘉良
2023-03-14
问题内容

我想选择一个值到一个变量中。我试图遵循:

DECLARE myvar INT(4);

-立即返回一些语法错误。

SELECT myvalue 
  FROM mytable 
 WHERE anothervalue = 1;

-返回一个整数

SELECT myvalue 
  INTO myvar 
  FROM mytable 
 WHERE anothervalue = 1;

-不起作用,也尝试了@myvar

是否可以在存储过程或函数之外使用DECLARE?

也许我只是不了解用户变量的概念……我只是尝试过:

SELECT myvalue INTO @var FROM `mytable` WHERE uid = 1;
SELECT @var;

…工作原理与预期的一样。但是,如果我一次运行每个查询,我只会得到@var NULL。


问题答案:

最后,存储过程是解决我的问题的方法。这是有帮助的:

DELIMITER //
CREATE PROCEDURE test ()
  BEGIN
  DECLARE myvar DOUBLE;
  SELECT somevalue INTO myvar FROM mytable WHERE uid=1;
  SELECT myvar;
  END
  //

DELIMITER ;

call test ();


 类似资料:
  • 有一个数据库保存音乐-艺术家,专辑和曲目。每个专辑都有几首曲目,每首曲目在专辑中都有自己的track_number。我尝试执行一个SQL请求,将一个曲目号向上移动(例如,曲目#4将成为曲目#3),同时将另一个曲目号向下移动(前曲目#3应该成为曲目#4)。SQL代码在MySQL Workbench或SQL sandbox中运行时工作良好,但在通过JDBC启动时会导致错误。 我得到的不是预期的转换:”

  • 问题内容: 在Javascript中,当我在某些变量中添加反斜杠时: JavaScript显示错误。 如果尝试限制用户输入此字符,我还会收到错误消息: 限制用户输入中的反斜杠不是一个好策略,因为您必须向用户显示烦人的消息。 为什么反斜杠出现错误? 问题答案: 反斜杠()是Javascript中的转义字符(以及许多其他类似C的语言)。这意味着当Javascript遇到反斜杠时,它将尝试转义以下字符。

  • 我有一个覆盆子圆周率,我用来上大学。由于我家里没有显示器,我决定用Lubuntu在我的笔记本电脑上汇编代码。

  • 问题内容: 我需要不时动态地更改表和变量,因此我编写了这样的python方法: 但是,这导致语法错误异常。我尝试对其进行调试,因此我将变量打印在方法中,然后手动将其填充,并且可以正常工作。所以我不确定我在做什么错? 是因为我尝试使用表的替代品吗? 另外,我该如何调试mysqldb以便将替换查询打印为字符串? 问题答案: DB API中的参数替换仅适用于值-不适用于表或字段。您将需要使用普通的字符串

  • 我有一个带有rollup bundler的nodeJS/express应用程序。我使用rollup配置文件,命令在包中定义。json,比如:“build”:“env ROLLUP_OPTIONS='prod'ROLLUP--config configs/ROLLUP.config.js”。当我尝试“npm运行构建”时,我遇到了错误: 在汇总源代码中,这是导致错误的函数: 此函数(见上图)位于nod

  • 我已经按照较新的SDK的建议实现了批量删除。创建了要删除每个项目的任务列表,然后等待所有任务。我的 CosmosClient 配置了 BulkOperations = true。据我所知,这意味着在引擎盖下,新的SDK发挥了魔力并执行批量操作。 不幸的是,我遇到了429响应状态。这意味着我的多个请求达到了请求速率限制(它很低,仅限于开发层,但不限于此)。我想知道,一个批量操作怎么会导致429错误。