2011-05-25 26 views
0

クエリは私に次のような構造戻っている:PHPでMySQLのクエリのヘルプ

24 | 24,879 
45 | 657,45 
77 | 77,15 

などを、私は次のように、配列にそれを得ることができます!

$array = (24=>"24,879",45=>"657,45",77=>"77,15"); 

今、私は必要なもの、であるような2番目のクエリ:

update $table set $col = 24 if $col in (24,879) 

より正確には、何かのように:

foreach($array as $k=>$v) { 
mysql_query("update `$table` set `$col` = $k if `$col` in ($v)"); 
} 

トリッキー、それはないですか?ヘルプは高く評価されます。

EDIT:カンマで区切られたものを返すクエリは以下の通りです:

SELECT n.id, o.email, count(o.email) AS c, 
CAST(GROUP_CONCAT(DISTINCT o.id) AS char) AS nid 
FROM 0_member AS n JOIN member_base AS o ON o.email = n.login_userid 
GROUP BY o.email HAVING c >1 
+3

正確な質問は何ですか? (「難しい、そうじゃない?」への答えは「はい、それです」:D) – MeLight

+0

その構造を返すクエリを表示できますか? –

+0

@ypercube、updated –

答えて

0

何が必要です:

UPDATE table SET column = 24 WHERE column IN (24, 879) 
+0

これは簡単ですか? –

+0

それは彼が必要とするものではありません。明らかに、彼は複数の値をカラムに文字列として格納しています。したがって、INを使用することはできません。 – wimvds

+0

まあ、私は上記の別のクエリで 'CAST(GROUP_CONCAT(DISTINCT old.id)AS char)AS newID'を使って24,879を得ました。今はNAの返事で何が変わるのですか? –

0

$vに含まれるデータを爆発してから実行する前にifクエリを実行しますmysqlデータ