java - MySQL 设置变量并在同一语句/脚本中运行查询

标签 java mysql sql

我有一个数据库客户名称和日期是复合键。我试图在每个日期提取“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/

相关文章:

sql - 使用 SQL 从 url 中去除域名

java - Java 中的 Hibernate 映射 : org. hibernate.MappingException:实体映射中的重复列

java - 有没有办法同时对项目的所有文件执行 'Save Actions' ?

mysql - 按 SUM 值范围分组 SQL

mysql - MySQL 事务和变量的问题

php - 如果行存在则更新 MySQL 表的最快方法否则插入。超过 2 个非唯一键

java - 查找时差

java - 当我使用 @JsType 时,GWT 2.8 出现经典开发模式错误 | @JsMethod 示例

php - 如何使用 file_get_contents 而不丢失回显值?

sql - rails/Postgres : “must appear in the GROUP BY clause or be used in an aggregate function”