Stel ik heb een tabel bestaande uit meerdere kolommen..

Geen van de kolommen is echter een PK of uniek.

(Hoe) kan ik dan een specifiek record updaten in die tabel als de records precies dezelfde waarden hebben in elke kolom?

Mijn kolommen:
`waarde1`, `waard2`, `waarde3`

Mijn records:
1, 2, 3
3, 1, 2
2, 3, 1
1, 2, 3
1, 3, 2
1, 2, 3

Merk op dat records '1', '4' en '6' kwa inhoud niet van elkaar te scheiden zijn.

Hoe kan ik deze records 1 voor 1 toch aanpassen zonder dat ik moet werken met offsets, limits e.d.

Als ik met phpMyAdmin de record '4' wilde aanpassen, bedacht deze de query:


UPDATE `test_tabel` SET `waarde2` = '0' WHERE CONCAT( `waarde1` ) = '1' AND CONCAT( `waarde2` ) = '1' AND CONCAT( `waarde3` ) = '2' LIMIT 1 ;


dit is dus niet wat ik wil.. (maar deed me beseffen dat er waarschijnlijk niets anders op zit).
@Frank

Ik ga/ging er eigenlijk van uit dat op de achtergrond MySQL naar de records refereert met een voor de gebruiker 'onzichtbaar' id. (anders zou het voor de MySQL engine ook niet mogelijk zijn om 2 gelijke records van elkaar te onderscheiden).

Ik had gehoopt naar dit 'id' te kunnen verwijzen (o.i.d.) om zo onderscheid te kunnen maken tussen 'gelijke records'.

Er blijft een verschil tussen legitieme 'sql statements' en de mogelijkheden van de MySQL engine lijkt me ;)

Het lijkt me niet wenselijk dat als m'n script geen 'primary key' detecteerd deze a la brute force dan maar een kolom aanmaakt met een AUTO_INCREMENT PRIMARY KEY. Dat kan/mag ook niet de bedoeling zijn van een database beheer schilletje.

Reageren