Ragazzi ho bisogno di effettuare una query che crea una riga o se esistente l'aggiorni, e fino a qui sappiamo come fare.

Il problema è che nella tabella possono capitare degli ID uguali ma di categorie diverse, e in quel caso ho problemi.

Per capirci, ho la tabella (commento) strutturata così (la minimizzo nel campi interessati):

codice:
| id_topic | sezione |
Nel DB vi sono diverse categorie distinte con un'abreviazione, tipo: Album (a), Offtopic(ot) ecc.
Ogni sezione ha una tabella dedicata, quindi l'id è impossibile che si ripeta, essendo un autoincrement, ma gli id delle varie sezioni possono ripetersi nella tabella comune presa in esame sopra (commento).

La query che attualmente uso è questa:

Codice PHP:
mysql_db_query($db_database,"INSERT INTO commento (id_topic, titolo, sezione) values('".$id."', '".$titolo."', 'ot') ON DUPLICATE KEY UPDATE titolo='".$titolo."'",$myconn); 
Questa query è chiaro cosa fa. Inserisce una nuova riga e l'aggiorna se già esiste.

Il problema è che lui fa riferimento al campo "id_topic", che può capitare che si ripeta, quindi mi va ad aggiornare una riga esistente con i dati di un'altra sezione!

Io vorrei che la query effettuasse un controllo sul campo "sezione" in modo che se l'id è uguale ad uno esistente, ma la sezione è diversa lui crea una nuova riga, se l'id è esistete e la sezione è uguale lui aggiorna, se non esistono ne id ne sezione lui crea una nuova riga.

Ho provato con questa query, ma senza avere successo, in caso di ID uguale e SEZIONE diversa non scrive ne aggiorna!

Codice PHP:
mysql_db_query($db_database,"INSERT INTO commento (id_topic, titolo, sezione) values('".$id."', '".$titolo."', 'ot') WHERE (SELECT sezione FROM commento WHERE sezione='ot')  ON DUPLICATE KEY UPDATE titolo='".$titolo."'",$myconn);