mysql - 同时获取列的最大值和特定记录的同一列

标签 mysql sql select if-statement

我有一个这样的表:

_id integer
column_1 text
column_2 integer

如果 _id = 1,我想获取 column_2 的值,如果不存在,则获取 column_2 的最大值

SELECT max(column_2), column_2
where _id = 2

这肯定会失败,有没有办法在同一个查询中获取这两个值?

最佳答案

试试这个查询

SELECT 
     IFNULL(column_2,l.MValue) 
FROM mytable 
LEFT JOIN (
          SELECT 
            id,   
            MAX(column_2) as MValue 
          FROM mytable 
          ) as l ON l.id = mytable.id 
WHERE mytable.id = 1

SQL Fiddle Demo

关于mysql - 同时获取列的最大值和特定记录的同一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14171634/

相关文章:

mysql - 我可以比较同一个 MySQL 表中的不同行 (SQL)

MySQL Case 语句(if else if equivalent)

mysql 与 information_schema.tables 相关的问题

php - html select php处理问题?

postgresql - 锁定行直到下一次选择 postgres

mysql - MySQL 主键和添加索引时遇到问题(错误#1064)

mysql - 错误代码: 1241. Workbench, MySQL, cannot resolve the parameters

sql - Oracle:什么是单 block 与多 block IO

sql - PostgreSQL 检查 Golang 中的空数组更改行为

MySQL查询获取列的总和