问题标签 [mysql-function]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
50 浏览

mysql - MySQL代码中END关键字的语法错误问题

当一切看起来都很好时,为什么我会收到语法错误。指出了 MySQL 工作台上的错误位置。我检查了很多问题,但没有找到答案。我知道这将是一个小问题,但我无法弄清楚

0 投票
0 回答
50 浏览

mysql-8.0 - MySQL 8 获取 PROCEDURE/FUNCTION 完整定义

我需要在MySQL 8中获取用户定义的PROCEDURE / FUNCTION完整定义。

MySQL 5.6包含mysql.proc表,我们可以获得函数完整定义,但 MySQL 8 不包含proc表。

但是MySQL 5.68也有information_schema.ROUTINES表它只包含函数体,我找不到函数parameterreturn类型。

我在 MySQL 5.6 中做了什么

知道如何做这个 MySQL 8 吗?

我的最终目标是使用 PHP 将所有函数和过程从一个数据库复制到另一个数据库

我找到了一个解决方案...

显示创建函数函数名

以上查询在MySQL 5.68中工作正常。但首先我必须从information_schema.ROUTINES表中获取FUNCTION名称列表并循环记录集,在循环内我必须运行上面的SHOW CREATE FUNCTION查询。

如何优化此流程?

0 投票
1 回答
39 浏览

mysql - 我的 LAG 函数没有按预期工作 MySQL 8.x

我的表如下所示:

Metro_region、价值、日期

在 11 月份具有多个值(每个日期一个)。大约有100个都会区。

我希望我的报告包含以下数据:

我尝试了什么:

我怀疑我没有正确分区......或者只是严重错过了如何使用LAG......任何见解都值得赞赏!

0 投票
1 回答
67 浏览

mysql - 传递 0 秒字符串并从该值中减去时,如何避免 MYSQL CONVERT() 方法出错?

我正在使用 MySQL 8 并且在使用这种类型的查询时遇到问题: INSERT INTO review (name, create_date) VALUES('name', CONVERT(timestamp, DATETIME) - 1) 在where 子句。当时间戳的值类似于“2020-12-16 06:15:01”时,它正在工作。

但是如果值为 0 秒(例如:'2020-12-16 06:15:00'),则会丢弃错误。

我在整个项目中都使用了这种表达方式。这个问题有没有简单的解决方案,而不改变每个表达式?那是一个错误吗?

此问题的一种解决方案是:

但正如我已经提到的,这需要更改每个表达式。

0 投票
1 回答
47 浏览

mysql - 如何根据条件创建插入函数

我的功能有点问题。我收到语法错误,我不知道如何一次插入多个内容。

本质上,我希望该safe_insert()功能包含:

  • _museum_ididmuseums表_
  • _curr_date一串日期,例如。2021-01-23 09:23:48
  • _customers用逗号分隔的字符串,例如。bob, billy,zoey,sarah,heather

但是,当它插入组成员时,它应该在 中插入 5 行group_members,因为在这种情况下有 5 个名称 ( bob,billy,zoey,sarah,heather)。

错误/问题:

  • 我不知道如何修复的语法错误#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 9
  • 我也不知道如何用逗号分隔字符串以插入 5 行。

表:

我的功能:

0 投票
0 回答
18 浏览

mysql - Float 的十六进制对话 - Big Endian

我在将十六进制字符串转换为浮点数时遇到了一些挑战。

这是一个例子:

十六进制:3F62 0C3C

二进制:“00111111011000100000110000111100”

对话结果(float big endian):0.8829992

这种转换可以用 mysql 函数实现吗?如果可能的话 - 怎么做?

谢谢您的帮助。

0 投票
1 回答
138 浏览

mysql - Mysql 中的 NTILE 函数在列上得到很好的分布

您好这个查询我正在尝试在 MySQL 中运行以在我的 ID 上获得良好的分布,但看起来语法上有一些问题。

这在 Oracle 中有效,但不是 MySQL,可能看起来它在 MySQL 5.7 中不可用。我们还能如何获得这些数据?

基本上我有生成的 UUID 应用程序,可以订购,需要组织和分组,然后分成 16 段。

预期产出

0 投票
2 回答
54 浏览

mysql - 每次我选择它时,MySQL 函数的执行时间都会增加

有点奇怪。我有一个函数起初运行得非常好,比如在选择返回值和其他一些列时执行 15ms 和 10ms 获取。但是,如果不断刷新相同的查询,一遍又一遍,查询的执行就会上升。所以首先是 15 毫秒,然后是 17 毫秒,然后……我一直到 900 毫秒。主要是获取及时增加,但执行也是如此。所以最后它将是 600 毫秒的获取和 300 毫秒的执行。有什么想法吗?

功能。我只尝试了一个简单的 IF/ELSEIF,但它在性能方面给出了完全相同的结果。

使用 var_account_id = 1 运行一次后的功能说明

在 account_id 和 expiring_at 上放置复合索引完全没有效果

我运行一个简单的查询,比如

我已经在更复杂的查询上运行它,但结果总是一样的,一开始很快,重新运行相同的 SELECT 后速度很慢,比如说每秒 5 次,持续 30 秒。即使我让 MySQL 冷却了一会儿,回来,第一次运行仍然是 900 毫秒。而且我相信它可以继续上涨。解决此问题的唯一方法是在 Windows 中重新启动 mysql 服务。

SELECT的解释:

如果重要的话,我会在 Windows 10 上运行这些,本地。

0 投票
0 回答
30 浏览

mysql - 如何使用替换替换查询中找到的字符串名称

我有下表:

在此处输入图像描述

另一方面,我有一个字符串可以包含上表中的单词,例如:“Jeff El ABC THE DEF”

我需要执行以下操作:

所以我需要删除在查询结果中找到的任何单词,有什么建议吗?

例子:

输入:“Jeff EL ABC THE DEF”查询结果:words[EL, THE, AL] 预期输出:“Jeff ABC DEF”

0 投票
1 回答
26 浏览

mysql - 用于将实体迁移到新表中的 MySQL 查询

在我们的数据库中,我们有一些表,其中的实体有时会附加一个文件,因此它们有一个file在磁盘上存储该文件名称的列。

我创建了一个名为的新表files,我需要将所有file填充了该列的实体“复制”到该表中。最终,我file将从所有原始表中删除该列。

files表还必须有一个rel_id列和table_name它来自的表的一个。

由于“employee1”没有文件,当然不会有那个文件的插入。

我怎样才能做到这一点?我尝试了一个带有子选择的插入语句,但我意识到我需要一个类似循环的东西。我可以在 MySQL 中执行此操作吗?