我需要执行更新查询,其中我根据计数查询的结果设置值。如果计数不返回任何结果,我想将状态设置为1,否则我想将状态设置为2使用条件表达式更新设置语句
这是我尝试不工作:
UPDATE TABLE_1 SET status = ((select count(1) from TABLE_2) > 0 ? 1 : 2)
而且,我m在mybatis xml文件中做这件事,所以如果我在mybatis中可以做一些魔术,那也可以。
我需要执行更新查询,其中我根据计数查询的结果设置值。如果计数不返回任何结果,我想将状态设置为1,否则我想将状态设置为2使用条件表达式更新设置语句
这是我尝试不工作:
UPDATE TABLE_1 SET status = ((select count(1) from TABLE_2) > 0 ? 1 : 2)
而且,我m在mybatis xml文件中做这件事,所以如果我在mybatis中可以做一些魔术,那也可以。
Hope DECODE帮助你!但是状态中的所有行都使用相同的值更新..你想要那样吗?
UPDATE TABLE_1 SET status = (select DECODE(count(1),0,2,1) from TABLE_2);
不错的一个。 +1使用'DECODE'。几乎忘了这个存在' - ) – Mureinik
谢谢,工作完美 –
想要设置table_1中的每一行与table_2具有相同(已解码)的计数吗?或者你也想加入这些表格? (从table_2得到count where some_id = table_1.some_id) – tbone