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.
- 5302 megtekintés
Hozzászólások
és mire akarod update-elni?
- A hozzászóláshoz be kell jelentkezni
Jogos!
A feladat azonban az lenne, hogy UPDATE -eljem a user_id -t azokban a sorokban ahol a zimbra_id nem üres (NOT NULL), azokból a sorokból ahol a zimbra_id üres és az email cim a két sorfalytában megeggyezik.
----
올드보이
http://molnaristvan.eu/
- A hozzászóláshoz be kell jelentkezni
valami ilyesmi:
update disabled_ids z1 join disabled_ids z2 on z1.email_address = z2.email_address set z1.user_id = z2.user_id where z1.zimbra_id IS NULL and z2.zimbra_id IS NOT NULL;
--
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!
- A hozzászóláshoz be kell jelentkezni
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/
- A hozzászóláshoz be kell jelentkezni
0-s
t
- A hozzászóláshoz be kell jelentkezni