求助一条mysql 更新 语句 where 后面为查询的结果
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求助一条mysql 更新 语句 where 后面为查询的结果相关的知识,希望对你有一定的参考价值。
求助一条sql 语句
表 a 字段 aa , ab
表 b 字段 ab
更新 表a 字段 aa 为1 当 表a 字段ab = 表 b 字段 ab
update a set aa = '1' where 后面怎么写呢
谢谢
测试过了 可以通过
但是这个语句只有在 b表中只有一条记录的时候是准确的
如果b表中有多条记录 那你得在子查询中查询指定的某一个 ab 列的值 才是准确的!追问
提示错误是 #1242 - Subquery returns more than 1 row
b表中有很多记录呢
你的意思是 select ab from b 只有一条结果是吗
如果有很多记录的话
假设我们要找 b表中id 为 100 的记录的 ab 和 a表的ab相同的时候
update a set aa=\'1\' where ab = (select ab from b where id=100);
这样就可以了 这样的话整个查询语句的含义是
修改 a 表中的 aa 字段的值为 1 条件是 a 表中的 ab字段和
b 表中的 id 为 100 的 ab 数据相同的
毕竟 a 表和 b 表是不同的2个表 如果 b表中只有仅仅一个数据的话 没关系
具体你的 b表的 ab的数据都是写什么 在什么情况下要把他们修改告诉我把
好像不行啊
追答报什么错呢
追问这个可以了
我还想 :
当 b中 有2个ab 的值等于a中ab值 a.aa=2
当 b中 有3个ab 的值等于a中ab值 a.aa=3
where a.ab = b.ab ???
追答嗯 后面AB没看到 B.AB
以上是关于求助一条mysql 更新 语句 where 后面为查询的结果的主要内容,如果未能解决你的问题,请参考以下文章
求助!使用mysql触发器(其他也可)实现一条插入语句在同表中添加两条数据。