mysql - 我可以在 SQL UPDATE 中使用内部 SELECT 吗?

标签 mysql sql sqlite sql-update

我有一个像这样的数据库:

foo 有列 idnamebar 有列 idfoo_id

我有一个带有 foo.name 的传入 HTTP 查询,我想在 bar 中插入一行 bar.foo_id适当设置。所以,例如:

> SELECT * FROM foo;
id     name
------ -------
1      "Andrey"
(1 row)


> SELECT * FROM bar;
(0 rows)

给定 "Andrey",是否有一个我可以执行的查询来获取:

> SELECT * FROM bar;
id     foo_id
------ -------
1      1
(1 row)

我的思路是:

> UPDATE bar SET foo_id=(SELECT id FROM foo WHERE foo.name=?)

但这似乎是错误的,因为 SELECT 的返回集,而不是值...

最佳答案

你必须做

SELECT TOP 1 ID FROM foo where foo.name=?

但除此之外,在更新中进行选择没有任何问题。

关于mysql - 我可以在 SQL UPDATE 中使用内部 SELECT 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/778307/

相关文章:

mysql - 为什么我的按部分排序出现 'not a group by' 错误

mysql - 如何在mysql中查找与年份无关的特定月份的所有行

mysql - 将 group_concat 的结果集限制为实际结果

sql - 有 2 个具有相同结构的 SQL 表是否有效?

python - 在python脚本中执行mysql命令

android - 如何在 Room 中动态创建新表?

php - 循环遍历 mysql 数组并将每一行打印到 <select> 中

php - 试图找到一种简单的方法让 PHP 和 Mysql DB 为 PHP5.5 做数学运算(AVG MIN MAX)

sql - 计算列什么时候合适?

python - 是否可以使用 SQLAlchemy 将 SQLite 数据库读入内存?