Hallo,
ich halte die Variante:
[1] versuche Datensatz per UPDATE zu ändern
[2] prüfe ob genau ein Datensatz geändert wurde (mittels affected_rows etc)
[3] wenn > 1 dann problem
wenn 1 - dann okay, änderung ist ja bereits erfolgt
wenn 0 - dann neuen Datensatz mit INSERT anlegen
für optimal(er).
Ist resourcenfreundlicher als
- select count(*) ... if = 0 dann insert, sonst update oder
- insert & hoffen auf Unique/Primary Key violation
Ciao, Frank