Update multiple columns on a row with a single select in sqlite

前端 未结 4 1182
灰色年华
灰色年华 2021-01-11 22:42

In SQLite I need to update row counts of a related table.

The query below does what I want but it walks the table multiple times to get the counts:

U         


        
4条回答
  •  情书的邮戳
    2021-01-11 23:11

    UPDATE overallCounts SET (total, totalC, totalL, iic, il) =
      (SELECT
        count(*) as total,
        sum(case when source=0 then 1 else 0 end) as totalC,
        sum(case when source=2 then 1 else 0 end) as totalL,
        case when source=0 then 1 else 0 end as iic,
        case when source=2 then 1 else 0 end as il
      FROM widgets
      WHERE joinId=1234)
    WHERE joinId=1234;
    

提交回复
热议问题