abonnement Unibet Coolblue
pi_92958586
quote:
Mooiste oplossing is denk ik:
dat doet de truc niet....ff eten..dadelijk weer verder over denken
pi_92958644
quote:
Ik snap je niet? Je wilt iets updaten maar dan moet het er wel zijn?
sorry..heel flauw

ik wil een rij updaten..maar als deze rij niet bestaat kan ik m ook niet updaten

ik kan de rij wel invoegen dan wordt bij elke wijziging deze rij ingevoegd terwijl hij geupdate moet worden
pi_92958701
quote:
1s.gif Op vrijdag 18 februari 2011 11:54 schreef MrNiles het volgende:

[..]

sorry..heel flauw

ik wil een rij updaten..maar als deze rij niet bestaat kan ik m ook niet updaten

ik kan de rij wel invoegen dan wordt bij elke wijziging deze rij ingevoegd terwijl hij geupdate moet worden
Je zoekt dus eigenlijk iets om een rij in te voegen, maar als die rij al bestaat moet'ie een update krijgen. Daar heeft MySQL al iets voor: INSERT ... ON DUPLICATE KEY UPDATE
  vrijdag 18 februari 2011 @ 11:57:36 #104
305897 remi1986
This MF is infected by madness
pi_92958748
quote:
7s.gif Op vrijdag 18 februari 2011 11:56 schreef Light het volgende:

[..]

Je zoekt dus eigenlijk iets om een rij in te voegen, maar als die rij al bestaat moet'ie een update krijgen. Daar heeft MySQL al iets voor: INSERT ... ON DUPLICATE KEY UPDATE
Hee dat is cool, wist ik zelf ook niet. Weer wat geleerd _O_

Het is echter wel in dit geval dat het gaat om een koppeltabel, dus geen primary key. Werkt dit dan ook ?
pi_92958881
quote:
7s.gif Op vrijdag 18 februari 2011 11:56 schreef Light het volgende:

[..]

Je zoekt dus eigenlijk iets om een rij in te voegen, maar als die rij al bestaat moet'ie een update krijgen. Daar heeft MySQL al iets voor: INSERT ... ON DUPLICATE KEY UPDATE
of gewoon REPLACE INTO
  vrijdag 18 februari 2011 @ 12:03:46 #106
91039 mstx
2x1/2 = 1/2 x 1/2
pi_92958941
quote:
1s.gif Op vrijdag 18 februari 2011 12:02 schreef KomtTijd... het volgende:

[..]

of gewoon REPLACE INTO
Let wel op dat REPLACE INTO eerst de rij verwijdert en daarna weer invoegt.
Op donderdag 2 juli 2009 22:41 schreef RTB het volgende:
als ik elk rap"liedje" een kans moest geven was ik aan het eind van dit millennium nog bezig met het tempo waarin die kotshoop uitgebraakt wordt.
👾
  vrijdag 18 februari 2011 @ 12:07:51 #107
305897 remi1986
This MF is infected by madness
pi_92959057
quote:
1s.gif Op vrijdag 18 februari 2011 12:03 schreef mstx het volgende:

[..]

Let wel op dat REPLACE INTO eerst de rij verwijdert en daarna weer invoegt.
Werkt dit ook met tabellen waar je geen primary key hebt?
pi_92959178
quote:
1s.gif Op vrijdag 18 februari 2011 11:57 schreef remi1986 het volgende:

[..]

Hee dat is cool, wist ik zelf ook niet. Weer wat geleerd _O_

Het is echter wel in dit geval dat het gaat om een koppeltabel, dus geen primary key. Werkt dit dan ook ?
Die koppeltabel kun je een primary key (of unieke key) geven op (g_id, o_id). Dat werkt meteen als een index op g_id, dus daar heb je geen aparte index meer nodig. Een index op o_id is wel handig.
  vrijdag 18 februari 2011 @ 12:14:52 #109
305897 remi1986
This MF is infected by madness
pi_92959262
quote:
1s.gif Op vrijdag 18 februari 2011 12:11 schreef Light het volgende:

[..]

Die koppeltabel kun je een primary key (of unieke key) geven op (g_id, o_id). Dat werkt meteen als een index op g_id, dus daar heb je geen aparte index meer nodig. Een index op o_id is wel handig.
Snel ff getest in een project waar ik zelf ook een koppeltabel heb. Maar als ik een primary key toevoeg en ik voeg een rij in, krijg ik een error dat de key al bestaat.
pi_92959273
quote:
1s.gif Op vrijdag 18 februari 2011 12:02 schreef KomtTijd... het volgende:

[..]

of gewoon REPLACE INTO
Dat is hier ook een optie :)
  vrijdag 18 februari 2011 @ 12:16:22 #111
75592 GlowMouse
l'état, c'est moi
pi_92959313
quote:
1s.gif Op vrijdag 18 februari 2011 12:03 schreef mstx het volgende:

[..]

Let wel op dat REPLACE INTO eerst de rij verwijdert en daarna weer invoegt.
Dat dus, zou ik niet zo snel doen.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  vrijdag 18 februari 2011 @ 12:16:51 #112
305897 remi1986
This MF is infected by madness
pi_92959328
quote:
Note that unless the table has a PRIMARY KEY or UNIQUE index, using a REPLACE statement makes no sense. It becomes equivalent to INSERT, because there is no index to be used to determine whether a new row duplicates another.
http://dev.mysql.com/doc/refman/5.0/en/replace.html
  vrijdag 18 februari 2011 @ 12:33:10 #113
75592 GlowMouse
l'état, c'est moi
pi_92959850
quote:
Je zegt niks nieuws.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_92959876
quote:
Die koppeltabel kun je een primary key (of unieke key) geven op (g_id, o_id). Dat werkt meteen als een index op g_id, dus daar heb je geen aparte index meer nodig. Een index op o_id is wel handig.
G_id is niet uniek
O_id is ook niet uniek
maar G_id AND O_id moeten wel uniek zijn
  vrijdag 18 februari 2011 @ 12:40:27 #115
305897 remi1986
This MF is infected by madness
pi_92960117
quote:
1s.gif Op vrijdag 18 februari 2011 12:33 schreef GlowMouse het volgende:

[..]

Je zegt niks nieuws.
Weet ik, maar paar berichten daarboven ging het over keys toevoegen in een koppeltabel. Maar dan kan je niet meer meerdere malen dezelfde user_id (in het geval van MrNiles) in de koppeltabel kwijt.

REPLACE is dan denk ik niet de oplossing
  vrijdag 18 februari 2011 @ 12:43:30 #116
75592 GlowMouse
l'état, c'est moi
pi_92960234
quote:
1s.gif Op vrijdag 18 februari 2011 12:40 schreef remi1986 het volgende:

[..]

Weet ik, maar paar berichten daarboven ging het over keys toevoegen in een koppeltabel. Maar dan kan je niet meer meerdere malen dezelfde user_id (in het geval van MrNiles) in de koppeltabel kwijt.
Als je vaker dezelfde user_id nodig hebt, moet je hem niet uniek maken.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_92960335
geldt voor INSERT ... ON DUPLICATE KEY UPDATE
dan dat de query niet wordt uitgevoerd als er een dubbele waarde zou komen?
pi_92960340
quote:
1s.gif Op vrijdag 18 februari 2011 12:34 schreef MrNiles het volgende:

[..]

G_id is niet uniek
O_id is ook niet uniek
maar G_id AND O_id moeten wel uniek zijn
Daarom een unieke index (of primary key) op (G_id, O_id). Een index kan meerdere kolommen bevatten :)
pi_92960480
quote:
Daarom een unieke index (of primary key) op (G_id, O_id). Een index kan meerdere kolommen bevatten
jullie zijn er natuurlijk allang achter dat ik een complete n00b ben
maar wat moet een index (over meerdere kolommen) dan doen?
  vrijdag 18 februari 2011 @ 12:52:23 #120
305897 remi1986
This MF is infected by madness
pi_92960537
Wat ik dan begrijp is dat de combinatie g_id en o_id uniek wordt. Waardoor je wel met REPLACE of INSERT DUPLICATE KEY kan werken, zoals eerder als oplossing is gegeven
pi_92960858
quote:
1s.gif Op vrijdag 18 februari 2011 12:50 schreef MrNiles het volgende:

[..]

jullie zijn er natuurlijk allang achter dat ik een complete n00b ben
maar wat moet een index (over meerdere kolommen) dan doen?
De makkelijkste manier is via phpmyadmin.
pi_92963053
quote:
De makkelijkste manier is via phpmyadmin.
Niet Hoe maar wat de functie ervan is
  vrijdag 18 februari 2011 @ 14:07:58 #123
305897 remi1986
This MF is infected by madness
pi_92963434
quote:
1s.gif Op vrijdag 18 februari 2011 13:58 schreef MrNiles het volgende:

[..]

Niet Hoe maar wat de functie ervan is
Dat maakt de combinatie van beide velden uniek. Dus je kan een INSERT doen. als de waarden van g_id EN o_id al voorkomen dan zal hij ze updaten. Wist dit ook nog niet. Heb dit net aangepast in mijn eigen project. Kon hierdoor van 4 queries terug naar 2.

Voorbeeld met ON DUPLICATE KEY (werkt dus ook op indexen)... credits gaan naar Light :Y

1
2
3
4
5
6
7
8
9
10
<?php
$query 
mysql_query("INSERT INTO langpack (link_id,type,language,data)
                                            VALUES ('"
.mysql_real_escape_string($unit_id)."',
                                                    'unit',
                                                    '"
.mysql_real_escape_string($code)."',
                                                    '"
.mysql_real_escape_string($_POST["unit_name_".$code])."')
                                            ON DUPLICATE KEY    
                                        UPDATE data = '"
.mysql_real_escape_string($_POST["unit_name_".$code])."'            
                                       "
);
?>


[ Bericht 38% gewijzigd door remi1986 op 18-02-2011 14:13:37 ]
  vrijdag 18 februari 2011 @ 14:18:42 #124
75592 GlowMouse
l'état, c'est moi
pi_92963878
Je zou een klein MySQL-quizje moeten doen elke keer voordat je zo'n LAMP-pakket kunt downloaden.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  vrijdag 18 februari 2011 @ 14:19:15 #125
305897 remi1986
This MF is infected by madness
pi_92963902
quote:
9s.gif Op vrijdag 18 februari 2011 14:18 schreef GlowMouse het volgende:
Je zou een klein MySQL-quizje moeten doen elke keer voordat je zo'n LAMP-pakket kunt downloaden.
want?
abonnement Unibet Coolblue
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')