MYSQL订单然后找出订单号[重复]

Posted

技术标签:

【中文标题】MYSQL订单然后找出订单号[重复]【英文标题】:MYSQL Order then find out order number [duplicate] 【发布时间】:2012-10-07 13:22:44 【问题描述】:

可能重复:mysql get row position in ORDER BY

我有一个用户表,我想按名为 Crown 的列对它们进行排序。然后我想找出它们在列表中的位置,但不完全确定如何去做。我试过用谷歌搜索,但不完全确定要输入什么。(Crown 有 INT 输入。)

所以我有第一行:

mysql_query("SELECT * FROM users ORDER by crown DESC");

然后我如何在按皇冠排序时找出用户在列表中的位置?

提前致谢。

【问题讨论】:

没有进入 PDO 与 mysql 或选择 * 问题,听起来你真的在寻找如何专门用你的 SQL 查询来做到这一点,而不是循环遍历 php 中的结果,正确? 嗯,我想把结果放到 PHP 中,这样我就可以向用户显示他们在列表中的位置。 【参考方案1】:

我会做这样的事情,假设你可以得到用户的皇冠值。

SELECT `user_var_you_want`,
       (SELECT COUNT(*) FROM `users` WHERE `crown` > $user_crown_value)+1 AS `position`
FROM `users`
WHERE `user_var_you_want` = $search_value

或者如果你不能得到他们的皇冠值:

SELECT `user_var_you_want`,
       (SELECT COUNT(*) FROM `users` WHERE `crown` > (SELECT `crown` from `users` WHERE `user_var_you_want` = $search_value)+1) AS `position`
FROM `users`
WHERE `user_var_you_want` = $search_value

【讨论】:

皇冠值已经在里面了。我希望它把数字按顺序排列,然后找出它们在列表中的位置。 确实,但是如果你想找出他们在列表中的位置,你需要先检索它,这样你就可以找出它们上面有多少,然后计算它,然后你就有了他们的位置,即是我上面的查询所做的。 assuming you can get the user's crown value 我的意思是你是否已经将它作为变量保存在你正在执行查询的页面上。如果是,请使用第一个,如果不是,请使用第二个。 所以你说到底我可以说他们在哪个位置。所以如果他们在第 4 个位置,它会说“4”? 有了我刚才所做的修改,应该可以试试。 最后我想用PHP来展示它...

以上是关于MYSQL订单然后找出订单号[重复]的主要内容,如果未能解决你的问题,请参考以下文章

在MYSQL中手动设置具有自动增量的订单号[重复]

mysql 利用唯一索引Unique 高并发创建不重复唯一订单号是不是和兴?

MySQL 死锁了,怎么办?

使用mysql设计一个全局订单生产计数器

Java并发生成不重复订单流水号

如何在 WooCommerce 中获取用户的活动订单 ID 和订单状态 [重复]