mysql - 从 SELECT 语句执行函数时,存储函数内的临时表是否会多次构建?
问题描述
假设我有一个函数可以创建一个我想用于SELECT
查询的临时表。该函数是否有可能在语句中多次重建临时表SELECT
?在这种情况下,最佳做法是什么?
CREATE FUNCTION getID(id INT)
RETURNS INT DETERMINISTIC
BEGIN
-- build ID table
CREATE TEMPORARY TABLE IF EXISTS tbl2(
id int,
val int
);
-- insert values into tbl2 here
SET @id = NULL;
SELECT tbl2.id INTO @id from tbl2 where id = tbl2.id;
return @id;
END
SELECT getID(id)
FROM tbl
WHERE condition;
解决方案
推荐阅读
- c# - NotifyPropertyChanged 没有更新 CustomControl 中的 DependencyProperty
- python - 试图在 Keras 中创建一个卷积神经自动编码器网络,但它一直在崩溃
- c# - 生成新记录时如何生成新号码?
- c# - 除了在 OpenVPN 配置中提供文件路径之外,如何使用 auth-user-pass
- visual-studio-2019 - VS .EditorConfig 文件不覆盖 VS 选项对话框
- sql - 如何检查值中的前一个或前两个或前三个字符是字母
- php - 请提供至少一个收件人电子邮件地址:-使用 php mailer 时出现 Mailer 错误
- javascript - 根据javascript中的属性值动态排序数组数组
- karate - 路径中缺少属性,json 模式空手道
- python - 每月、每年分组的值计数 - Pandas