MYSQL加入元键值?

时间:2013-12-12 16:24:06

标签: mysql

我有非常基本的mysql知识(能够更新和连接表)并且正在使用phpMYAdmin但是我现在尝试的东西超出了我的水平。我已经查看了许多其他问题和答案,但无法为我找到解决方案。我相信有一个非常简单的答案。这就是我想要做的......

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  |

我想更新所有单元格中的t1 meta_value列,其值为“name”,其中meta_key为“desc”,其中包含t2.desc列中的数据,并在t1.user_id = t2.user_id处加入,但我不知道怎么做!有人有一些mysql建议吗?

1 个答案:

答案 0 :(得分:1)

试试这个:

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'

INNER JOIN上的user_id两个表,并在您要更新的字段上添加WHERE子句。

sqlfiddle demo