postgresql - 更新表中的多个字段
问题描述
我一直在尝试更新transsit
表中列中的多个字段值tracking_details
。
我有一个名为的表tracking_details
,它由两列id
和transsit
示例tracking_details
表:-
id | transsit
------------------
1 | rec
2 | rec
3 | sen
4 |
5 | rec
在这里,我想rec
改成received
where id
equal1,2 and 5
到目前为止我所做的是:
UPDATE tracking_details
SET transsit = 'received'
WHERE id = (select id from tracking_details where transsit='rec');
然后我收到以下错误:
ERROR: more than one row returned by a subquery used as an expression
********** Error **********
ERROR: more than one row returned by a subquery used as an expression
SQL state: 21000
解决方案
UPDATE tracking_details
SET transsit = 'received'
WHERE id IN (select id from tracking_details where transsit='rec');
对于多行更新使用IN
而不是=
因为=
将始终只有一行,或者您可以简单地使用连接。
UPDATE tracking_details a
JOIN tracking_details b
ON a.id=b.id
SET a.transsit = 'received'
Where b.transsit='rec';
Furthurmore 查看查询,您使用单个查询执行此操作
UPDATE tracking_details
SET transsit = 'received'
WHERE transsit='rec';
推荐阅读
- google-apps-script - 如何使用应用脚本 [GOOGLE SHEETS] 在数字列中查找第一个“0”
- c - 当我运行我的代码时,我得到一个段错误,但是当调试器运行它时,它说没有问题
- python - 如何在不同的虚拟机上制作多线程套接字
- c++ - 如何以 if else 或 switch case 格式对 auto& 进行编码?
- jmeter - 尝试使用 Beanshell Sampler 在 Jmeter 中读取 csv 文件
- c# - winform Timer.timer 会创建一个新线程吗?
- bash - 嵌套 if else bash 语句
- ios - 观察来自 Firebase 的调用在函数退出后不更新字典的值
- python - 接受用户输入并说它是更大类别的一部分
- reactjs - useContext 值在测试中返回未定义