问题标签 [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.
sql - 没有 ROW_NUMBER() 的 SQL 编号行与 Partition By ?玛丽亚数据库 10.1
我想这样做:
但在 MariaDB 10.1 中,row_number 不可用。我设法做到了:
但我不知道如何放置分区,所以我可以为任何 Id 开始一个新的计数(最终目标是按创建的 num 排序)
谢谢
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 | - | 上 |
sql - 查找每个属性值的行数,仅考虑 SQL 中最近的行
我有一个数据库,其中包含代表“编辑”到“页面”的表。每个编辑都有一个 ID 和一个时间戳以及一个具有某些离散值的“状态”。页面有 ID,也有“类别”。
我希望找到给定类别中每种状态的页面数,仅考虑最近编辑的状态。
编辑:
页数:
我想得到,类别100
:
页面10
和30
有两个编辑,但后一个“覆盖”第一个,所以只有带有状态91
和的编辑92
被计算在内。页面20
和40
帐户之一91
和90
每个页面50
都属于错误的类别,因此它没有功能。
我尝试了以下方法,但似乎不起作用。这个想法是为每个具有正确类别的页面选择最大(即最新)编辑。然后将其加入编辑表并按状态分组并计算行数:
例如在这个小提琴中:http ://sqlfiddle.com/#!9/42f2ed/1
结果是:
获取此信息的正确方法是什么?
php - 在 MySQL 中每隔 n 小时获取一次订单
我们从用户那里收集订单,并在订单交付/取消之前给他们 3 天的付款窗口。我们希望每 8 小时向他们发送一次通知,以提醒他们付款。我们使用每小时 cron 发送通知。
我们如何获得在第 8/16/24 等小时内创建的所有订单?我们尝试了以下查询(简化)
o_created
varchar 字段在哪里(不幸的是),2021-05-01 11:11:11
是日期前 3 天(我们接受 3 天的付款)并且2021-05-02 12:12:12
是当前日期时间。两个日期时间都来自 php,所以计算是有的,没有问题。
但这似乎不起作用。我们将在 3 天内收到所有订单。
sql - 每天计算重复记录(无窗口函数)
我试图每天计算重复客户记录,但在使用 MariaDB 10.1 时遇到了一些麻烦,因为直到 10.2 才引入窗口函数(因此没有分区、排名等)
我有一组示例数据,如下所示:
可以使用以下查询生成上述内容:
我想计算在日期、国家和类型组中出现多次的电子邮件地址,并将其显示为如下摘要:
每日重复计数是电子邮件地址在日期、国家和类型组中出现多次的记录计数。卷是每个国家和类型的记录总数。
我在这个版本的 MariaDB 中缺少窗口函数时遇到了困难,任何帮助都将不胜感激。
(对于格式化为代码的表格,我在尝试以其他方式发布时遇到格式错误)
mariadb - MySQL 8 版本下不允许行号
有人可以帮我创建一个可以在 MySQL 8 下运行的 SQL 查询。目前,这个查询在我的本地主机上运行,但是当传输到 Live 时显示错误。
此查询从 10 到 1 对赛车手进行评分(第 1 名 = 10 分,第 10 名 = 1 分),在星期一午夜自动运行。
这是示例表:
更新。我创建了一个可以在 MySQL 8 版本以下运行的 SQL 查询。它按预期工作,但我愿意接受更好的方法。
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()
mysql - MariaDb 在插入空 id 时抛出重复的主键错误
我有一个带有自动增量主键的表,以及一个将 id 设置为 null 的插入,以便使用自动增量。这是我通常做的,是预期的行为并且工作正常。
使用一张表,我发现有时(并非总是)Mariadb 错误主键重复。即使我没有设置一个。但是,如果我再次运行完全相同的查询,它就可以正常工作。
定义的相关部分:
和插入:
抛出错误:
因此,当我指定 null (应该如此)但后来发现它是重复的(它不应该)时,它似乎试图使用 id 2558021 作为 PK。我可以看到 pk 2558021 在一分钟后为另一个客户插入。
我确实发现表定义上设置的自动增量低于最高 id。我认为这无关紧要,但我已经解决了。但问题还在继续。
我正在使用 mariadb 10.1.35 和 php 7.2。我没有使用交易。
我什至无法弄清楚这是怎么发生的。有什么bug吗?是否有一组奇怪的情况会导致这种情况?
mysql - 模式匹配可以在 MySQL 中用于连续行吗?
我有一个非常简单的表,类似于:
我希望能够识别连续行中的模式。例如,如果输入是“29, 21, 14”,则有匹配的连续三行,我想返回:
如果行不连续,则不匹配。
我的尝试,不起作用:
问题显然是我的查询找到 val 29,然后查找 id 21 和 id 14,它应该查找 val 21 和 val 14,但我不知道该怎么做。
任何帮助表示赞赏!
mysql - 无法在存在外键的此子表上的 Mariadb 上创建分区?
无法用父表“国家”创建这个子表“城市”的分区它显示下面的错误“不支持外键”。没有外键关系如何保持
分区不支持 ForeignKey] [2] https://i.stack.imgur.com/WIlQR.png [1]: https://i.stack.imgur.com/CpjOv.png