mysql - 选择和存储值,在 IN 子句中使用这些值

标签 mysql variables

有没有办法从一个表中选择一组值,然后在 IN 子句中使用这些值?

我想从一个表中选择 ID,然后在另一个表中更新这些 ID 的数据。

有点像

<some var> = SELECT id from tableA WHERE <something>;

INSERT INTO tableB <stuff> where id IN (<some var>);

我发布的变量语法不是真的。只是想表明我的意图。我已经阅读了一些关于 SET 的内容,但我对 MySQL 还是陌生的,所以它没有完全的意义。还提到SET只能设置某些类型的变量,而且看起来都很简单。

谢谢!

最佳答案

您可以使用 insert 。 . .选择:

INSERT INTO tableB (id)
    SELECT id 
    FROM tableA
    WHERE <something>;

我不确定 IN 与此有什么关系。

编辑:

哦,你想要一个更新:

update tableb b join
       tablea a
       on b.id = a.id
    set b.col = ??
    where <conditions on a>;

您也可以使用 in 执行此操作:

update tableb b
    set col = ??
    where b.id in (select a.id from tablea a where <conditions>);

最大的区别在于是否要使用来自tablea 的信息。如果这样做,则需要 join 版本。

关于mysql - 选择和存储值,在 IN 子句中使用这些值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43017567/

相关文章:

PHP 面向对象 : Function not return all row in database to php

mysql - 使用 concat() 和cast() 按月和年列排序

mysql - 如何使用 Laravel 查询生成器在 WHERE 条件周围添加括号

javascript - 全局时 JSON 变量未定义

javascript - 在 Jquery 或 Javascript 中设置变量

mysql - 选择右侧 mysql 的下一列?

mysql - 如何在仍然使用索引的同时按 MySQL 中的日期/时间段对结果进行分组?

python - 使用 vars() 不好吗

c# - 如何将变量插入带有多个引号和转义字符的长字符串中?

java - 执行以下代码时,Author 类的yearofBirth 出现为空?