Avatar billede playr Nybegynder
30. april 2007 - 15:07 Der er 6 kommentarer

Insert / Overwrite i MYSQL

Hej

Jeg har i min table et felt der hedder "ip" (varchar) og vil gøre således at når man med mysql_query("INSERT INTO... indsætter noget data så hvis der ikke allerede eksistere noget så skal den bare sætte det ind. Hvis der gør skal den overskride informationerne. Skal den være primæer/unik/indeks og hvordan gør man dette lettest ?
Avatar billede jakobdo Ekspert
30. april 2007 - 15:50 #1
Dafox: Er dit svar skrevet med blindeskrift?

playr: Hvilken version af mysql bruger du?
Du kan kigge på: INSERT INTO table (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=c+1;
eller REPLACE [LOW_PRIORITY | DELAYED]
    [INTO] tbl_name [(col_name,...)]
    VALUES ({expr | DEFAULT},...),(...),...

Og jeg ville overveje at gemme ip som int(10) unsigned og så bruge funktionen: inet_aton() - http://dev.mysql.com/doc/refman/4.1/en/miscellaneous-functions.html#function_inet-aton
Avatar billede playr Nybegynder
30. april 2007 - 16:51 #2
ON DUPLICATE KEY UPDATE c=c+1;

Hvordan skal den forstås? I mine øjne ser det ud som om den bare sætter c til c+1?

Ja hva fanden gik der galt for Dafox? :)

Det skal jo være således at den bare gemmer oveni? ligesom med UPDATE istedet for INSERT INTO, men i dette tilfælde skal den indsætte data hvis der ikke er noget, og opdatere hvis der er.

Jeg kunne også bare få den til at if(... IP allerede eksistere = UPDATE } else {INSERT INTO, troede bare der var en mere simpel måde?
Avatar billede jakobdo Ekspert
30. april 2007 - 17:14 #3
REPLACE works exactly like INSERT, except that if an old row in the table has the same value as a new row for a PRIMARY KEY or a UNIQUE index, the old row is deleted before the new row is inserted.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

Quadsat ApS

Software Developer

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Cyberdivisionen søger Entreprise Arkitekt

Unik System Design A/S

QA Engineer for AI-first development