mysql - 匹配和替换 mysql 查询

标签 mysql sql sql-update

我在数据库中有两个表,如下所示:

文章表

id | name
------------
1  | Cars

元表

id | post_id | key  | value
---------------------------
1  | 1       | Audi | 42

并且想要精确匹配(value)并替换两个表(id/post_id)的值并像这样转换:

新文章表

id | name
------------
42 | Cars

新元表

id | post_id | key  | value
---------------------------
1  | 42      | Audi | 42

这可能吗? 谢谢!

最佳答案

这假设articlemeta之间的关系是article.id ==> meta.post_id .

article 中,id 被相关的 meta.value 替换:

UPDATE article
INNER JOIN meta ON article.id = meta.post_id
SET id = meta.value

对于 new_meta,看起来您只需要使 post_idvalue 相同即可。由于测试数据,这可能是一个误解。如果需要连接,只需按照上面的查询示例即可。

UPDATE meta
SET post_id = value;

关于mysql - 匹配和替换 mysql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17216828/

相关文章:

mysql - 按 asc 排序,但当值 0 位于 codeigniter 的最后时

mysql - sql 查询查找可用日期

SQL 两个子查询的 MAX 值

sql - 更新与唯一索引冲突的多行

mysql - 用多列mysql更新一列值

php - 使用准备好的语句将 MySQL SELECT 结果存储在 php 变量中

mysql 存储过程错误信息

php - 从多对多表中获取对应值和非对应值

mysql - 计算 SQL 中的多个 CASE 出现次数

postgresql - 仅在列存在时执行更新