在MYSQL中应用双条件
(问题编辑)我的表格有id、状态、日期、顺序 情况:获取满足以下条件的ID:在MYSQL中应用双条件,mysql,case-when,dbvisualizer,Mysql,Case When,Dbvisualizer,(问题编辑)我的表格有id、状态、日期、顺序 情况:获取满足以下条件的ID: 日期是最大值,不超过今天的,状态是最大值 如果超过1个状态具有相同的日期,则仅当其具有max序列 我正在dbvisualizer中编写MYSQL 编辑:尝试使用查询: 从中选择id、max(日期)、max(顺序) 桌子 哪里 表.日期从中选择id 桌子 哪里 表.日期从中选择id、最大值(日期)、最大值(顺序) 桌子 哪里 table.datePost您尝试过的内容,而不是发布要求。投票关闭。谢谢@Lelionow
是最大值,不超过今天的,日期
是最大值状态
- 如果超过1个状态具有相同的
,则仅当其具有max日期
序列
dbvisualizer
中编写MYSQL
编辑:尝试使用查询:
从中选择id、max(日期)、max(顺序)
桌子
哪里
表.日期<代码>从中选择id
桌子
哪里
表.日期<代码>从中选择id、最大值(日期)、最大值(顺序)
桌子
哪里
table.datePost您尝试过的内容,而不是发布要求。投票关闭。谢谢@Lelionow()
和limit
不受支持(dbvisualizer 6.5.1),我猜您的查询会将结果限制为一条记录。Rest看起来很有希望。不确定是否正确还需要在id
上group by
,使用max
(聚合函数)ehm。。。这不是您使用的工具的问题。语法与您正在使用的db引擎相关。mysql支持now()和limit,它们是基本功能。无论如何,您可以跳过“限制1”部分,将日期作为参数传递,而不是使用nowGroup\u by来返回多行(在您的情况下,每个项目\u id对应一行)对于像max.这样的聚合函数,如果没有sqlfiddle或确切的表和数据结构,我可以给您一些关于如何获取点的提示Getting errorid在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中
select id from
table
where
table.date<now() and table.status='A'
order by date desc,sequence desc
limit 1;
select id, max(date), max(sequence) from
table
where
table.date<=now() and status='A'
order by date desc,sequence desc
group_by id;