gpt4 book ai didi

MySQL 局部变量

转载 作者:IT老高 更新时间:2023-10-28 23:44:30 30 4
gpt4 key购买 nike

我正在尝试为查询定义和初始化 MySQL 变量。

我有以下几点:

declare @countTotal int;
SET @countTotal = select COUNT(*)
from nGrams;

我在 Netbeans 中使用 MySQL,它告诉我有一个错误。我的错误是什么/在哪里?

我该如何解决这个问题?

最佳答案

MySQL 有两种不同类型的变量:

  • 局部变量(@为前缀)是强类型的,并且作用于它们所在的存储程序 block 被宣布。请注意,如 DECLARE Syntax 下所述:

    DECLARE is permitted only inside a BEGIN ... END compound statement and must be at its start, before any other statements.

  • user variables (are@ 为前缀)是松散类型的,并且范围仅限于 session 。请注意,它们既不需要也不能声明——直接使用即可。

因此,如果您正在定义一个存储程序并且确实想要一个“局部变量”,根据您问题中的措辞,您需要删除 @ 字符并确保您的 DECLARE 语句位于程序 block 的开头。否则,要使用“用户变量”,请删除 DECLARE 语句。

此外,您需要将查询括在括号中,以便将其作为子查询执行:

SET @countTotal = (SELECT COUNT(*) FROM nGrams);

否则,您可以使用 SELECT ... INTO :

SELECT COUNT(*) INTO @countTotal FROM nGrams;

关于MySQL 局部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13670659/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com