gpt4 book ai didi

MySQL 返回所有选择而不是输出变量

转载 作者:行者123 更新时间:2023-11-29 09:49:12 26 4
gpt4 key购买 nike

找到了代表这种行为的极其简单的示例:

DECLARE Existing INT DEFAULT 0;
SELECT SQL_CALC_FOUND_ROWS name FROM users WHERE id = pid LIMIT 1;
SELECT FOUND_ROWS() INTO Existing;
Select Existing;

这将返回两个选择,而不仅仅是显示现有(与输出变量相同)。

我有一个包含数百个选择的存储过程,我只想检索有关用户的一个信息,该信息是根据所有这些不同的选择等决定的。

我不想从数据库中获取 3MB 无用的数据,我只想返回 16 字节,没有别的。

用 MySQL 可以吗?有一段时间我决定转向MySQL,我们在架构、服务器等方面做了很多准备,花了好几个月的时间。

现在我想转移存储过程,但似乎基于所有其他问题,MySQL 不关心精益方法并返回所有数据,使得存储过程几乎毫无用处(至少当您使用大型使用存储过程/函数的 SQL Server 数据库,一切都按您的预期工作,将所有内部数据、选择等保留在其所属的位置,不要将其返回给客户端)。

我发现客户端应该支持它,但它违背了任何类型的编程最佳实践(即在服务器之间发送 MB od 无用数据,而您只需要 4 个字节,这是使用存储过程的主要原因使用 C# 编写代码(因为您必须对数据库进行数百次调用才能获得帐户概览)。

我错过了什么吗?

我想调用存储过程,它可以对其他存储过程进行数百次调用,处理即 100MB 的数据,并且仅返回输出变量(即提供帐户概述的 5 个)...

我们还有仍在使用 SQL Server 的 AI 引擎,如果您每天必须执行数百万次,那么您就无法承受每个实体占用数十 MB 的数据。它会破坏整个应用程序......

请仅告诉我MySQL是否可以将存储过程结果输出到选定的变量。我不关心对我来说兆字节的无用数据。我不是在问计数或其他任何事情。我说的是复杂的逻辑,我只想知道MySQL是否可以做Microsoft SQL Server所做的事情? (存储过程返回输出 Ant 就是这样,这就是为什么你有输出参数,这就是存储过程存在的原因)

最佳答案

如果您不想要结果,为什么还要进行选择?获取结果的更简单方法是使用 count(*):

DECLARE Existing INT DEFAULT 0;
SELECT COUNT(*) INTO Existing FROM users WHERE id = pid;

SQL_CALC_FOUND_ROWSFOUND_ROWS() 专门用于您希望查询返回结果的情况。

关于MySQL 返回所有选择而不是输出变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55119779/

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