我有一个数据库客户名称和日期是复合键。我试图在每个日期提取“x”个最大或最小的交易并将其与排名一起插入到另一个表中。
我在单次运行中使用此代码,但当通过 JDBC 从 Java 运行多次时它不起作用。
set @N = 0;
SELECT @N := @N +1 AS rank, name, purchase FROM t1 ORDER BY close purchase
limit 15;
有什么建议吗?
最佳答案
这非常有效:
SELECT t.*,
@n := @n + 1 AS rank
FROM WhateverTable t, (SELECT @n := 0) r
所以你的查询实际上看起来像这样:
SELECT @N := @N +1 AS rank, name, purchase
FROM t1, (SELECT @N := 0) r
ORDER BY purchase desc
limit 15;
关于java - MySQL 设置变量并在同一语句/脚本中运行查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7689832/