Tömeges UPDATE SELECT

Hi All!
Egy kis MySQL segítségre lenne szükségem, van egy lekérdezésem:

SELECT z1.id, z1.user_id, z2.id, z2.user_id, z2.zimbra_id, z2.email_address FROM (SELECT * FROM disabled_ids WHERE zimbra_id IS NULL) z1 JOIN (SELECT * FROM disabled_ids WHERE zimbra_id IS NOT NULL) z2 ON z1.email_address = z2.email_address;

+-----+---------+-----+---------+--------------------------------------+--------------------------+
| id | user_id | id | user_id | zimbra_id | email_address |
+-----+---------+-----+---------+--------------------------------------+--------------------------+
| 111 | 46 | 554 | 0 | 83c4db0c-xxxx-yyyy-zzzz-5a58c28d8a38 | matula.bacsi@tuskevar.hu |
+-----+---------+-----+---------+--------------------------------------+--------------------------+
....
+-----+---------+-----+---------+--------------------------------------+--------------------------+
139 rows in set (0.04 sec)

Ez azt kérdezi le, hogy a disabled_ids nevű táblában mely címek vannak benne kétszer: 0-ás és valós user_id -val. Ez így tiszta sor, megy szépen.

A feladat azonban az lenne, hogy UPDATE -eljem a user_id -t azokban a sorokban ahol a zimbra_id nem üres (NOT NULL)

Tehát kb ez:

UPDATE disabled_ids SET user_id .....?

Na de a többi az kifogott rajtam, mi az update vége.

Hozzászólások

Na ez így túl komplikált!

Tehát lemásoltam az eredeti tábla szerkezetét, aztán, feltöltöttem az eredeti táblából, végül az eredeti táblét eldobtam és az újonnan létrehozottat átneveztem.

CREATE TABLE disabled_ids2 LIKE disabled_ids;

INSERT INTO disabled_ids2 (SELECT '', z1.user_id, z2.zimbra_id, z2.email_address FROM (SELECT * FROM disabled_ids WHERE zimbra_id IS NULL) z1 JOIN (SELECT * FROM disabled_ids WHERE zimbra_id IS NOT NULL) z2 ON z1.email_address = z2.email_address);

INSERT INTO disabled_ids2 (SELECT '',user_id,zimbra_id,email_address FROM disabled_ids WHERE user_id <> 0 AND email_address NOT IN (SELECT email_address FROM disabled_ids2));

DROP TABLE disabled_ids;

RENAME TABLE disabled_ids2 TO disabled_ids;

----
올드보이
http://molnaristvan.eu/