SQLite에서 관련 테이블의 행 수를 업데이트해야합니다.sqlite에서 하나의 select로 행의 여러 열을 업데이트
아래의 쿼리가 내가 원하는 것을하지만이 카운트 얻기 위해 테이블을 여러 번 안내 :
이UPDATE overallCounts SET
total = (count(*) FROM widgets WHERE joinId=1234),
totalC = (count(*) FROM widgets WHERE joinId=1234 AND source=0),
totalL = (count(*) FROM widgets WHERE joinId=1234 AND source=2),
iic = (SELECT CASE WHEN COUNT(*)>0 THEN 1 ELSE 0 END FROM widgets WHERE joinId=1234 AND widgets.source=0),
il = (SELECT CASE WHEN COUNT(*)>0 THEN 1 ELSE 0 END FROM widgets WHERE joinId=1234 AND widgets.source=2)
WHERE id=1234
이 쿼리는 내가 빨리 원하는 것을 정확하게 검색하지만 업데이트 문에 출력을 켜야를 :
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
이 메서드는 레코드의 추가 필드를 joinId = 1234로 덮어 씁니 까? – Sinchi
아니오 – cha
아니요, 기본 키 충돌로 행을 확실히 제거한 다음 입력 한 값만 삽입하여 다른 필드를 덮어 쓰지 않아야합니다. – nschwan94