是否可以在一个sql查询中更新多个记录?
因此,将所有ID为 A 和ip 1.1.1.1 的打印机的状态更新为工作(true),将所有其他打印机的状态都不工作(false)
因此,基本上将这两个查询组合为一个查询:
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Click anywhere to trigger the resize
表结构:
update printers set status = true ,row_update_date =sysdate where printer id = 'A' and printer ip = '1.1.1.1'
update printers set status = false ,row_update_date =sysdate where printer id = 'A' and printer ip != '1.1.1.1'
更新
我忘了row_update_date!
答案 0 :(得分:2)
或者,您可以将decode
用于switch-case
类型语句的Oracle SQL
update printers
set status = decode(printer_IP,'1.1.1.1','true','false'),
row_update_date = sysdate
where printer_ID = 'A';
答案 1 :(得分:1)
您可以尝试将UPDATE
与CASE WHEN
update printers
set status = (CASE WHEN printer ip = '1.1.1.1'
THEN true
WHEN printer ip != '1.1.1.1'
THEN false
END)
WHERE printer id = 'A'
答案 2 :(得分:1)
您可以使用CASE
:
update printers
set status = CASE WHEN printer ip = '1.1.1.1' THEN true ELSE false END
,row_update_date = SYSDATE
where printer id = 'A'