问题标签 [mariadb-10.1]

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 投票
1 回答
49 浏览

sql - 没有 ROW_NUMBER() 的 SQL 编号行与 Partition By ?玛丽亚数据库 10.1

我想这样做:

但在 MariaDB 10.1 中,row_number 不可用。我设法做到了:

但我不知道如何放置分区,所以我可以为任何 Id 开始一个新的计数(最终目标是按创建的 num 排序)

谢谢

0 投票
0 回答
41 浏览

mysql - 对于这个复杂的数据,查询应该是什么样子?

我被困在创建一个复杂的查询......也许那里有一些帮助?:) 我有一张带有设备状态的表格。每次设备状态更改都会生成一个条目。我想要的是一个输出,我可以在其中看到所有设备的最新每个日期 - 对于表中包含的所有日期。在这个例子中 04.05.2021 - 06.05.2021。我想将它用于仪表板。

谁能帮我吗?

以下是该表的外观示例:设备更改表:

ID 设备ID 改变 预值 后值
20 40 04.05.2021 13:00 -
21 41 04.05.2021 13:00 -
22 42 04.05.2021 13:00 -
23 43 04.05.2021 13:00 -
24 44 04.05.2021 13:00 -
25 45 04.05.2021 13:00 -
26 46 04.05.2021 13:00 -
27 47 04.05.2021 13:00 -
28 48 04.05.2021 13:00 -
29 40 05.05.2021 15:00 离开
30 40 05.05.2021 16:00 离开 恢复
31 40 05.05.2021 17:00 恢复 等待
32 41 06.05.2021 09:00 离开
33 41 06.05.2021 10:00 离开 等待
35 40 06.05.2021 11:00 等待

我想要实现的输出如下:

LATESTSTATPERDATE 设备ID 改变 预值 后值
04.05.2021 40 04.05.2021 13:00 -
04.05.2021 41 04.05.2021 13:00 -
04.05.2021 42 04.05.2021 13:00 -
04.05.2021 43 04.05.2021 13:00 -
04.05.2021 44 04.05.2021 13:00 -
04.05.2021 45 04.05.2021 13:00 -
04.05.2021 46 04.05.2021 13:00 -
04.05.2021 47 04.05.2021 13:00 -
04.05.2021 48 04.05.2021 13:00 -
05.05.2021 40 05.05.2021 17:00 恢复 等待
05.05.2021 41 04.05.2021 13:00 -
05.05.2021 42 04.05.2021 13:00 -
05.05.2021 43 04.05.2021 13:00 -
05.05.2021 44 04.05.2021 13:00 -
05.05.2021 45 04.05.2021 13:00 -
05.05.2021 46 04.05.2021 13:00 -
05.05.2021 47 04.05.2021 13:00 -
05.05.2021 48 04.05.2021 13:00 -
06.05.2021 40 06.05.2021 11:00 等待
06.05.2021 41 06.05.2021 10:00 离开 等待
06.05.2021 42 04.05.2021 13:00 -
06.05.2021 43 04.05.2021 13:00 -
06.05.2021 44 04.05.2021 13:00 -
06.05.2021 45 04.05.2021 13:00 -
06.05.2021 46 04.05.2021 13:00 -
06.05.2021 47 04.05.2021 13:00 -
06.05.2021 48 04.05.2021 13:00 -
0 投票
3 回答
44 浏览

sql - 查找每个属性值的行数,仅考虑 SQL 中最近的行

我有一个数据库,其中包含代表“编辑”到“页面”的表。每个编辑都有一个 ID 和一个时间戳以及一个具有某些离散值的“状态”。页面有 ID,也有“类别”。

我希望找到给定类别中每种状态的页面数,仅考虑最近编辑的状态。

编辑:

页数:

我想得到,类别100

页面1030有两个编辑,但后一个“覆盖”第一个,所以只有带有状态91和的编辑92被计算在内。页面2040帐户之一9190每个页面50都属于错误的类别,因此它没有功能。

我尝试了以下方法,但似乎不起作用。这个想法是为每个具有正确类别的页面选择最大(即最新)编辑。然后将其加入编辑表并按状态分组并计算行数:

例如在这个小提琴中:http ://sqlfiddle.com/#!9/42f2ed/1

结果是:

获取此信息的正确方法是什么?

0 投票
1 回答
20 浏览

php - 在 MySQL 中每隔 n 小时获取一次订单

我们从用户那里收集订单,并在订单交付/取消之前给他们 3 天的付款窗口。我们希望每 8 小时向他们发送一次通知,以提醒他们付款。我们使用每小时 cron 发送通知。

我们如何获得在第 8/16/24 等小时内创建的所有订单?我们尝试了以下查询(简化)

o_createdvarchar 字段在哪里(不幸的是),2021-05-01 11:11:11是日期前 3 天(我们接受 3 天的付款)并且2021-05-02 12:12:12是当前日期时间。两个日期时间都来自 php,所以计算是有的,没有问题。

但这似乎不起作用。我们将在 3 天内收到所有订单。

0 投票
2 回答
29 浏览

sql - 每天计算重复记录(无窗口函数)

我试图每天计算重复客户记录,但在使用 MariaDB 10.1 时遇到了一些麻烦,因为直到 10.2 才引入窗口函数(因此没有分区、排名等)

我有一组示例数据,如下所示:

可以使用以下查询生成上述内容:

我想计算在日期、国家和类型组中出现多次的电子邮件地址,并将其显示为如下摘要:

每日重复计数是电子邮件地址在日期、国家和类型组中出现多次的记录计数。卷是每个国家和类型的记录总数。

我在这个版本的 MariaDB 中缺少窗口函数时遇到了困难,任何帮助都将不胜感激。

(对于格式化为代码的表格,我在尝试以其他方式发布时遇到格式错误)

0 投票
1 回答
116 浏览

mariadb - MySQL 8 版本下不允许行号

有人可以帮我创建一个可以在 MySQL 8 下运行的 SQL 查询。目前,这个查询在我的本地主机上运行,​​但是当传输到 Live 时显示错误。

此查询从 10 到 1 对赛车手进行评分(第 1 名 = 10 分,第 10 名 = 1 分),在星期一午夜自动运行。

这是示例表:

更新。我创建了一个可以在 MySQL 8 版本以下运行的 SQL 查询。它按预期工作,但我愿意接受更好的方法。

0 投票
1 回答
16 浏览

phpmyadmin - phpmyadmin 事件语法错误,而它适用于 sql 命令

从排名中删除;ALTER TABLE 排名 AUTO_INCREMENT = 1; INSERT INTO Ranking (username) select username from Players order by rank desc LIMIT 100;

这是我想每 10 分钟执行一次的命令,我有一个应该不断存储前 100 名玩家的表。如果我将命令输入到 sql 命令行中,它工作正常。但是,一旦我想在出现此错误的情况下使用相同的命令来执行。

在此处输入图像描述

也许我不了解事件的局限性,有人可以告诉我我做错了什么吗?遗憾的是,我正在使用运行 Maria Db 的服务器。10.1.48 所以我不能使用新的 Windows 函数,比如 Rank()

0 投票
1 回答
86 浏览

mysql - MariaDb 在插入空 id 时抛出重复的主键错误

我有一个带有自动增量主键的表,以及一个将 id 设置为 null 的插入,以便使用自动增量。这是我通常做的,是预期的行为并且工作正常。

使用一张表,我发现有时(并非总是)Mariadb 错误主键重复。即使我没有设置一个。但是,如果我再次运行完全相同的查询,它就可以正常工作。

定义的相关部分:

和插入:

抛出错误:

因此,当我指定 null (应该如此)但后来发现它是重复的(它不应该)时,它似乎试图使用 id 2558021 作为 PK。我可以看到 pk 2558021 在一分钟后为另一个客户插入。

我确实发现表定义上设置的自动增量低于最高 id。我认为这无关紧要,但我已经解决了。但问题还在继续。

我正在使用 mariadb 10.1.35 和 php 7.2。我没有使用交易。

我什至无法弄清楚这是怎么发生的。有什么bug吗?是否有一组奇怪的情况会导致这种情况?

0 投票
1 回答
70 浏览

mysql - 模式匹配可以在 MySQL 中用于连续行吗?

我有一个非常简单的表,类似于:

我希望能够识别连续行中的模式。例如,如果输入是“29, 21, 14”,则有匹配的连续三行,我想返回:

如果行不连续,则不匹配。

我的尝试,不起作用:

问题显然是我的查询找到 val 29,然后查找 id 21 和 id 14,它应该查找 val 21 和 val 14,但我不知道该怎么做。

任何帮助表示赞赏!

0 投票
1 回答
40 浏览

mysql - 无法在存在外键的此子表上的 Mariadb 上创建分区?

无法用父表“国家”创建这个子表“城市”的分区它显示下面的错误“不支持外键”。没有外键关系如何保持

分区不支持 ForeignKey] [2] https://i.stack.imgur.com/WIlQR.png [1]: https://i.stack.imgur.com/CpjOv.png