2012-11-16 51 views
0

難以獲得正確的mysql查找,然後更新這些記錄。我對兩個單獨表格的概念有困難。Mysql查詢,兩個表之間的更新

SELECT email,id 
    FROM `phplist_user_user` 
    WHERE `email` LIKE '%gmail%' 
    LIMIT 0 , 30 

然後seperately:基本上我可以在一個表查找記錄成功

SELECT userid, value FROM `phplist_user_user_attribute` 

現在我無法弄清楚是如何在「phplist_user_user_attribute」更新值「的Gmail。 com「查找第一個查詢中找到的所有記錄。

+0

這是您要加入的關鍵? phplist_user_user.id = phplist_user_user_attribute.user_id – AllInOne

+0

兩個表'phplist_user_user_attribute'和'phplist_user_user'之間是否有任何關係? –

回答

0
UPDATE phplist_user_user u 
JOIN phplist_user_user_attribute a ON u.id = a.userid 
SET a.value = 'gmail.com' 
WHERE u.email LIKE '%gmail%' 
+0

謝謝!這工作完美!另外我在此期間學到了一些東西。 – user1825456

0

沒關係顯然,它看起來就像你不能直接更新phplist_user_user_attribute表。

你可以做的是使用嵌套查詢..即 像 //這僅僅是一個辦法做到這一點......

Update phplist_user_user_attribute 
SET your_value = 'foo' 
where your_value IN (SELECT your_value 
        FROM `phplist_user_user` 
        WHERE `email` LIKE '%gmail%' 
        LIMIT 0 , 30); 
+0

謝謝!如果我沒有收到來自MySQL的消息,說明「IN」功能在我的MySQL版本中不起作用,那麼這將起作用。 mysql -V mysql Ver 14.14 Distrib 5.1.65,對於使用readline 5.1的unknown-linux-gnu(x86_64) – user1825456