我有一个场景,当我更新记录时,查询应该从表'Process'更新max(id_inc)+ 1。接下来它需要使用简单的concat函数(SELECT CONCAT(max(inv_id),'/',16)更新同一个表'Process'中的另一个字段inv_id_inc。即它应该更新为1/16,然后是2/16 ,然后3/16等16是当前年份的简称。我不确定我是否可以在一个查询中实现这一点。目前我尝试了2个查询。首先查询它更新max(id_inc)+ 1和第二个查询它连接CONCAT(max(inv_id),'/',16。我不确定iam是否正确。
================================
tender_id | id_inc | inv_id_inc
================================
200 | 1 | 1/16
300 | 2 | 2/16
我的第一个查询如下:。
update process
set inv_id=
SELECT MAX( inv_id ) + 1 FROM process where tender_id=200;
我的第二个问题如下:
update process t
join (SELECT CONCAT(max(inv_id) , '/', 16) as inv_id_inc
from process ) t1
set t.inv_id_inc=t1.inv_id_inc WHERE tender_id='200'";
它没有更新。任何人都可以建议我一个解决方案。?
现在它的工作。我更改了2个查询。更新的查询如下:
首先查询:
UPDATE process set inv_id = ((SELECT inv_id FROM (SELECT MAX(inv_id) AS inv_id FROM process)
AS inv_id_new) + 1) WHERE tender_id='200'
第二次查询:
update process t
join (SELECT CONCAT(max(inv_id), '/', 16) as inv_id_inc
from process ) t1
set t.inv_id_inc=t1.inv_id_inc WHERE tender_id='200'
有更好的解决方案吗?