用于检查最大ID并使用最大ID和年份

时间:2016-10-14 08:25:55

标签: php mysql

我有一个场景,当我更新记录时,查询应该从表'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'

有更好的解决方案吗?

0 个答案:

没有答案
相关问题