- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
SET @i := 0;
SELECT posts.post_id,
members.member_joined,
@i := @i + 1
FROM posts LEFT JOIN members
ON posts.member_id = members.member_id
WHERE posts.topic_id = 1
ORDER BY posts.post_created ASC;
该查询返回以下结果集:
+---------+---------------------+--------------+
| post_id | member_joined | @i := @i + 1 |
+---------+---------------------+--------------+
| 1 | 2014-10-14 20:28:15 | 1 |
+---------+---------------------+--------------+
| 3 | 2014-10-14 20:28:15 | 4 |
+---------+---------------------+--------------+
| 4 | 2014-10-14 20:28:15 | 5 |
+---------+---------------------+--------------+
| 5 | 2014-10-14 20:28:15 | 6 |
+---------+---------------------+--------------+
| 14 | 2014-10-14 20:28:15 | 7 |
+---------+---------------------+--------------+
| 17 | 2014-10-14 20:28:15 | 8 |
+---------+---------------------+--------------+
| 35 | 2014-10-14 20:28:15 | 9 |
+---------+---------------------+--------------+
| 37 | 2014-10-14 20:28:15 | 2 | -- What's the 2 doing down here?
+---------+---------------------+--------------+
| 42 | 2014-10-14 20:28:15 | 3 | -- Ditto.
+---------+---------------------+--------------+
如您所见,由于某些我不知道的原因,数字 2 和 3 出现在结果集的最底部,而它们本不该出现。
如果我像这样注释掉 members.member_joined, 行:
SET @i := 0;
SELECT posts.post_id,
-- members.member_joined,
@i := @i + 1
FROM posts LEFT JOIN members
ON posts.member_id = members.member_id
WHERE posts.topic_id = 1
ORDER BY posts.post_created ASC;
现在的结果集符合预期:
+---------+--------------+
| post_id | @i := @i + 1 |
+---------+--------------+
| 1 | 1 |
+---------+--------------+
| 3 | 2 |
+---------+--------------+
| 4 | 3 |
+---------+--------------+
| 5 | 4 |
+---------+--------------+
| 14 | 5 |
+---------+--------------+
| 17 | 6 |
+---------+--------------+
| 35 | 7 |
+---------+--------------+
| 37 | 8 |
+---------+--------------+
| 42 | 9 |
+---------+--------------+
我实在想不通。可能出了什么问题?
最佳答案
很可能您的排序依据导致计数被关闭。ORDER BY 在选择完成后执行,因此它可以重新排序您的计数。尝试将其放入子查询中。
SET @i := 0;
SELECT post_id, member_joined, @i := @i + 1
FROM
( SELECT p.post_id, m.member_joined
FROM posts p
LEFT JOIN members m ON p.member_id = m.member_id
WHERE p.topic_id = 1
ORDER BY p.post_created ASC
)t;
这样想.. SELECT 到 WHERE 正在从表中提取...因此任何特定要求都可以在 WHERE.. GROUP BY 到最后是在请求完成之后并且您正在更改结果回来了......所以这就是为什么顺序可能会导致问题......当你包括加入选择的成员时它返回的结果被计算然后按日期重新排序
MySQL DOCS对此很清楚:
As a general rule, you should never assign a value to a user variableand read the value within the same statement. You might get theresults you expect, but this is not guaranteed. The order ofevaluation for expressions involving user variables is undefined andmay change based on the elements contained within a given statement;in addition, this order is not guaranteed to be the same betweenreleases of the MySQL Server. In SELECT @a, @a:=@a+1, ..., you mightthink that MySQL will evaluate @a first and then do an assignmentsecond. However, changing the statement (for example, by adding aGROUP BY, HAVING, or ORDER BY clause) may cause MySQL to select anexecution plan with a different order of evaluation.
关于mysql - 行编号 (@i := @i + 1) doesn't work as expected,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26394054/
我正在尝试将我的 xcode 应用程序存档到 Itunes,但我得到了 following errors : 1.) “配置文件不支持推送通知。” 2.) “配置文件不包含 aps-environme
我正在尝试为我们的组织构建一个 Web 应用程序,它将使用我们的 O365 进行身份验证。在尝试使用管理员帐户连接到域时,我遇到了这个错误,其中提到 admin..onmicrosoft.com(全局
当我尝试构建 MUAI 项目时,它给出错误“该项目不知道如何运行配置文件 sample.WinUI”。项目已构建但无法运行。我使用的是 Visual Studio 2022 Preview(17.0
当某项包含在列表中时,有一个查询要搜索,但当某项不在列表中时,则没有查询。 此查询查找在给定列表 cdiffnums 中没有 ContactNum 的 customer 对象。我该怎么做才能仅返回此列
我们有一个黑盒第三方 Java 程序,可以从某个位置获取输入文件并制作 PDF。每次输入时,它都会将 list 文件放在同一位置,这需要我们以受控方式提供文件。 list (或 .xen/.que)是
我看到这个has选择器,hasnt 选择器在哪里?我想查找不包含图像的表格。 最佳答案 类似$("table:not(:has(img))")? 关于jQuery: "Doesn' t 有“选择器?,
为什么?这让我发疯??? $(document).ready(function () { $('#slides1').bxSlider({ prev_
我是 kubernetes 的新手。 我无法使用 kubectl 进行部署,但我可以在 kubernetes 仪表板上看到所有部署。我该如何解决这个问题? user@master:~$ kubectl
这个问题已经有答案了: What do querySelectorAll and getElementsBy* methods return? (12 个回答) 已关闭 6 年前。 HTML JS
我有两个数组,一个包含字符串值,另一个包含整数值,尽管这可能很愚蠢,但我陷入了困境,我需要一点帮助,我想遍历两者,如果 arr1 包含 arr2 中不存在的项目,它将被推送到 newArray 这是我
我一直在尝试为我的网站安装一个 PHP 脚本,设置所有内容,通过脚本附带的 phpMyAdmin 导入 SQL 文件,但我面对的是一个空白页面,错误如下所示: File /home/user/publ
我正在努力将站点的服务器从 PHP 5.2.17 升级到 5.5,以使其在未来的升级中保持新鲜,并安装其他需要 PHP 5.4+ 的软件。 数据库有一个我正在测试的表,其中有许多列在初始 INSERT
我一直收到这个错误: Object doesn't support this property or method 每当我在 IE7 和 IE8 中运行我的代码时。这是它停止的代码: _renderU
我想使用正则表达式排除某些单词。 输入文本: aaa1234 cc bbb1234 c1234 cc dd aacc cccc ccadf cc 输出文本: aaa1234 bbb1234 c1234
我有一个名为 adjust_status 的存储函数和一个包含 status 列的表 users。 select adjust_status(status) as adjusted_status
我有一个表,其中有一列由插入前触发器填充,该列设置为 NOT NULL 并且没有DEFAULT VALUE。 当我执行 INSERT TABLE 而不传递此列时,我收到错误:1364 - Field
这个问题已经有答案了: Modify the value of each textfield based on original value using jQuery (3 个回答) 已关闭去年。 使
我正在阅读 this , 它说 @keyframes rules don't cascade, so animations never derive keyframes from more than
编辑:我解决了问题,请参阅答案中的链接。 我正在使用 XMLHttpRequest AJAX API 将来自不同网站的数据发送到我们在 PythonAnywhere 中的服务器。奇怪的事情发生了:根据
我已经阅读了 Linux 调用 dlopen() 和 dlsym() 的文档,它们分别打开一个动态库并在库中加载一个符号。 这些调用似乎等同于 Windows 的 LoadLibrary() 和 Ge
我是一名优秀的程序员,十分优秀!