Kezdőoldal » Számítástechnika » Programozás » MySQL -ben hogyan lehet a...

Jjandras kérdése:

MySQL -ben hogyan lehet a legegyszerűbben eltávoltani a táblából (egyoszlopos) az összes ismétlődést (pl. egy . Csv import után)?

Figyelt kérdés
( ablak, ablak, szék, asztal, asztal, asztal ) -ból ( ablak, szék, asztalt ) -t szeretnék. A kérdés többoszlopos táblára is vonatkozik ( nincs kulcs az adott oszlopra ), gondolom ua. a megoldás.

2014. jan. 24. 10:34
 1/7 anonim ***** válasza:

Itt több megoldás is van.

[link]

2014. jan. 24. 11:22
Hasznos számodra ez a válasz?
 2/7 anonim ***** válasza:

1, ideiglenes tábla létrehozása és egyben másolás is (mert nem lehet ugyanazt a táblát lekérdeztetni és töröltetni)

CREATE TEMPORARY TABLE bad_temp AS SELECT DISTINCT * FROM bad_table

2, A eredeti rossz tábla tartalmának törlése

DELETE FROM bad_table;

3, jó értékek bemásolása

INSERT INTO bad_table(mezők) SELECT (mezők)FROM bad_temp;


Persze lehet,hogy a 2, DROP TABLE bad_table majd 3,CREATE TABLE bad_table AS SELECT * FROM bad_temp is működne..

2014. jan. 24. 13:17
Hasznos számodra ez a válasz?
 3/7 anonim ***** válasza:

"mert nem lehet ugyanazt a táblát lekérdeztetni és töröltetni"


??


DELETE FROM table WHERE ... ( SELECT ... FROM table ... )

:)

2014. jan. 24. 14:06
Hasznos számodra ez a válasz?
 4/7 anonim ***** válasza:
2014. jan. 24. 15:30
Hasznos számodra ez a válasz?
 5/7 anonim ***** válasza:

Én is errort kaptam,amikor ilyesmit próbáltam,azért írtam,de pont amit előbb linkeltem ott van egy másik megoldást is. Még egy subqueryt használ,hogy ne legyen hiba,de ezt most itt nem tudom kipróbálni..

"

For others that find this question looking to delete while using a subquery, I leave you this example for outsmarting MySQL (even if some people seem to think it cannot be done):


DELETE e.*

FROM tableE e

WHERE id IN (SELECT id

FROM tableE

WHERE arg = 1 AND foo = 'bar');

will give you an error:


ERROR 1093 (HY000): You can't specify target table 'e' for update in FROM clause

However this query:


DELETE e.*

FROM tableE e

WHERE id IN (SELECT id

FROM (SELECT id

FROM tableE

WHERE arg = 1 AND foo = 'bar') x);

will work just fine:

"

2014. jan. 24. 15:35
Hasznos számodra ez a válasz?
 6/7 A kérdező kommentje:
Köszönöm Mindenkinek
2014. jan. 24. 18:06
 7/7 anonim ***** válasza:
Bár nem ez volt a kérdésed, de honnan van a csv? Mert ha táblázatkezelőből, akkor lehet, hogy ott egyszerűbb, az Excelben 2-3 kattintás.
2014. jan. 24. 19:03
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!