0

適切なmysqlルックアップを取得してからそれらのレコードを更新するのが困難です。2 つの別々のテーブルの概念に問題があります。基本的に、次の方法で 1 つのテーブル内のレコードを正常に見つけることができます。

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

そして個別に:

  SELECT userid, value FROM `phplist_user_user_attribute`

今私が理解できないのは、最初のクエリで見つかったすべてのレコードについて、「phplist_user_user_attribute」の値を「gmail.com」に更新する方法です。

4

2 に答える 2

0

どうやらphplist_user_user_attributeテーブルを直接更新できないようです。

ネストされたクエリを使用することができます。つまり、//これはそれを行うための1つの方法にすぎません...

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);
于 2012-11-17T01:05:52.743 に答える
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%'
于 2012-11-17T00:49:24.093 に答える