如何更新/插入表中的指定行

时间:2014-04-16 09:20:45

标签: mysql sql

我有一个查询,它给出了如下所示的输出:

date|count|highest 
---------------------
mon | 20  | null
tue | 32  | null
wed | 45  | null
thu | 14  | null
fri | 74  | null
sat | 12  | null
sun | 32  | null

现在,我需要运行一个从“count”中选取最高值的查询,并将该值替换为该值,如下所示:

date|count|highest 
---------------------
mon | 20  | null
tue | 32  | null
wed | 45  | null
thu | 14  | null
fri | 74  | 74
sat | 12  | null
sun | 32  | null

有人可以帮忙吗?

编辑:最高列不是表中的物理列,但它是select语句的输出。所以我不想更新表格。

我使用的查询:

select date_format(timestamp, '%Y-%m-%d %H:00:00') as date, count, "null" as highest
    from Table_A
    where (timestamp >= (now() - interval 24 hour)) 
    group by date  
    order by date desc

*不要担心“约会”

4 个答案:

答案 0 :(得分:0)

UPDATE table_name
SET highest = COUNT
WHERE id IN
    (SELECT id
     FROM table_name
     ORDER BY COUNT DESC LIMIT 1);

答案 1 :(得分:0)

使用子查询

UPDATE table1 SET highest = 74 WHERE count = (SELECT Max(Count) FROM table2)

答案 2 :(得分:0)

尝试使用此语法并告诉我它是否有效!

UPDATE table_name 
 SET highest = 74 
  WHERE count = (SELECT max(count) FROM table_name)

UPDATE table_name 
 SET highest = (SELECT max(count) FROM table_name) 
  WHERE count = (SELECT max(count) FROM table_name)

不想更新,只想获得最高

SELECT * 
 FROM table_name 
  WHERE count = (SELECT max(count) FROM table_name)

试试这个

SELECT date, count, IF(count= (SELECT max(count) FROM table_name), (SELECT max(count) FROM table_name), 'null') AS highest FROM table_name WHERE count = (SELECT max(count) FROM table_name)

干杯!

答案 3 :(得分:0)

更新表格中的指定行

UPDATE table_name SET field1 = value1,field2 = value2 WHERE field_n = some_value;

删除表格中的指定行

DELETE FROM table_name WHERE field1 = some_value;