MYSQL加入元键值?
我有非常基本的mysql知识(能够更新和连接表),并且正在使用phpMYAdmin,但我现在正在尝试一些超出我水平的东西。我看了很多其他问题和答案,但找不到解决办法。我相信有一个非常简单的答案。这就是我想做的MYSQL加入元键值?,mysql,Mysql,我有非常基本的mysql知识(能够更新和连接表),并且正在使用phpMYAdmin,但我现在正在尝试一些超出我水平的东西。我看了很多其他问题和答案,但找不到解决办法。我相信有一个非常简单的答案。这就是我想做的 usermeta t1 looks like this: user_id | meta_key | meta_value| --------------------------------------- 1 | mk1 | value1 | 2
usermeta t1 looks like this:
user_id | meta_key | meta_value|
---------------------------------------
1 | mk1 | value1 |
2 | mk2 | value2 |
3 | desc | name |
4 | mk4 | value4 |
5 | desc | name |
6 | mk6 | value6 |
7 | mk7 | value7 |
8 | desc | name |
9 | mk9 | value9 |
10 | desc | name |
userdata t2 looks like this:
user_id | desc |
---------------------
1 | bob |
2 | joe |
3 | nancy |
4 | jane |
5 | lee |
6 | jeff |
7 | jill |
8 | scott |
9 | len |
10 | carey |
我想用t2.desc列中的数据更新所有单元格中带有值“name”的t1 meta_值列,其中meta_键为“desc”,并在其中加入t1.user_id=t2.user_id,但我不知道怎么做!有人对mysql有什么建议吗?试试这个:
UPDATE usermeta t1
INNER JOIN userdata t2 ON t1.user_id = t2.user_id
SET t1.meta_value = t2.desc
WHERE t1.meta_key = 'desc' AND t1.meta_value = 'name'
将用户id
上的两个表进行内部联接,并在要更新的字段上添加WHERE
子句
谢谢@Filipe!也谢谢你的演示。它看起来像我需要的,但当我尝试时,它返回“零行受影响”。我不知道为什么!你确定你没有运行过两次吗?第二次,没有人的meta_值为'name'?尝试执行SELECT*fromUserMeta,其中meta_value='name'我想你说的我跑了两次可能是对的。我从usermeta对该值运行SELECT语句,并返回所有行。如何阻止它运行两次?这对我来说是一个新的(令人兴奋的)领域…@user2591811。只需点击两下GO按钮即可运行两次。如果你把数据放回原样,并确保只点击一次,你应该是好的。我向你展示的查询不会自己运行两次。那就奇怪了。我只点击了一次按钮。我只是再次尝试确保(我尝试了几次),它产生了零行受影响的相同结果。