gpt4 book ai didi

mysql - 如何为 MySQL 编写查询

转载 作者:搜寻专家 更新时间:2023-10-30 22:30:42 25 4
gpt4 key购买 nike

我有两个表:

mysql> select * from survey;
+-----------+-----------+----------+--------+-----------+
| survey_id | client_id | stage_id | by_ref | no_branch |
+-----------+-----------+----------+--------+-----------+
| 2 | 65 | 72 | P | 15 |
| 3 | 67 | 72 | D | 2 |
+-----------+-----------+----------+--------+-----------+
2 rows in set (0.07 sec)

mysql> select * from allcode where code_type="MARKETING_STAGES";
+------------------+---------+------+--------------------+
| code_type | code_id | srno | code_name |
+------------------+---------+------+--------------------+
| MARKETING_STAGES | 72 | 1 | Enquiry |
| MARKETING_STAGES | 73 | 3 | Meeting |
| MARKETING_STAGES | 74 | 4 | Presentation |
| MARKETING_STAGES | 75 | 5 | Review / Follow up |
| MARKETING_STAGES | 76 | 6 | Negotiation |
| MARKETING_STAGES | 77 | 7 | Order |
| MARKETING_STAGES | 78 | 8 | Agreement |
| MARKETING_STAGES | 162 | 9 | Complete |
| MARKETING_STAGES | 163 | 2 | Tender |
+------------------+---------+------+--------------------+
9 rows in set (0.04 sec)

我想将 survey 表的 stage_id 更新为下一个值,该值将从 allcode code_id 获取。
现在我有 client_id,即 survey 表中的 65,并且想将 stage_id 更新为 163(即 根据 srno 排序的 allcode 表中的下一个 code_id )

我尝试过的是

update survey as s 
set s.stage_id=
(select code_id from allcode
where code_id > (select stage_id from (select * from survey where client_id=65 )as su)
and code_type="MARKETING_STAGES"
limit 1)
where client_id=65;

此查询将 allcodestage_id 更新为 73,我希望它更新为 163(取决于在 srno)

最佳答案

我会在更新中使用连接来根据 srno 获取下一个 code_id:

update survey s
inner join allcode a1 on s.stage_id=a1.code_id
inner join allcode a2 on a1.srno=a2.srno-1
set s.stage_id=a2.code_id
where a1.code_type='MARKETING_STAGES' and a2.code_type='MARKETING_STAGES' and s.client_id=65

我假设 srno 字段递增 1,没有任何间隙。 1st join 的目的是获取当前stage_id 的srno。然后第二个连接获取下一个 srno 的 stage_id。

关于mysql - 如何为 MySQL 编写查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44213985/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com