mysql - 更好的MySql语句

标签 mysql

我有一个数据库表“dmAutoDropAndCal”,其中包含以下列:

USER_NAME             varchar
LAST_AUTO_DROP_CHECK  bigint
NEXT_DM_EVENT         bigint
NEXT_CAL_UPDATE_TIME  bigint

NEXT_DM_EVENTLAST_AUTO_DROP_CHECKNEXT_CAL_UPDATE_TIME 都是表示时间戳(以毫秒为单位)的 java long。

我需要检索 25 个 USER_NAME。我想返回过去带有 NEXT_DM_EVENT 的所有 USER_NAME。如果没有 25 个,则检索 NEXT_CAL_UPDATE_TIME 过去的用户名。

目前我正在用 2 条语句来执行此操作,但我想用一条语句来执行此操作。这可能吗?这是我的 2 条声明。

注意:(当前时间)是一个java长...例如:1403434909872

声明1: SELECT USER_NAME FROM dmAutoDropAndCal WHERE NEXT_DM_EVENT <(当前时间)ORDER BY NEXT_DM_EVENT ASC

..这里我用前 25 个结果填充一个对象(如果有那么多)。如果不是 25,则运行以下命令...

声明2:

dmAutoDropAndCal 中选择 USER_NAME,其中 NEXT_CAL_UPDATE_TIME <(当前时间)按 NEXT_CAL_UPDATE_TIME ASC 排序

..再一次,有没有办法用一个语句来做到这一点?

最佳答案

如果您确实指的是任何语句,而不是单个 SELECT 语句,我认为您在追求 UNION

(SELECT USER_NAME FROM dmAutoDropAndCal 
 WHERE NEXT_DM_EVENT < (current time) ORDER BY NEXT_DM_EVENT ASC)
UNION
(SELECT USER_NAME FROM dmAutoDropAndCal 
 WHERE NEXT_CAL_UPDATE_TIME < (current time) ORDER BY NEXT_CAL_UPDATE_TIME ASC) 
LIMIT 25;

关于mysql - 更好的MySql语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25650521/

相关文章:

mysql - mySQL中的CASE语句,比较运算符

mysql - JPA 2.1/EclipseLink 2.5.2 中查询集合参数的最大大小

php登录 session

php - mysql 列用于插入和不同的列用于更新

MySQL "SET NAMES"靠近慢查询日志的顶部

python - 在 RoR 和 python 中锁定数据库表

mysql - 用户内容网站在mysql中的密码存储

php - 2 Mysql表sum列分组并求减

c# - 无法将类型 'system.windows.forms.textbox' 的对象转换为类型 'System.IConvertible' 错误

php - 一切都出了问题 : Php - MySQL