Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    525

    insert - delete da insiemi di valori

    Ho una tabella e un array. Devo fare in modo che la tabella (che contiene già degli elementi) contenga solo i record che uguagliano l'id con i dati dell'array. Ad esempio:

    nella tabella ci sono gli id 1 - 2 - 3 - 4
    l'array contiene gli elemnti 1 - 5 - 6

    Dopo la procedura la tabella deve contenere i recvord con id 1 - 5 - 6

    Procedura:
    eliminiamo la possibilità di vuotare ogni volta la tabella e riempirla solo con i dati corretti
    Il procedimento dovrebbe invece essere qualcosa tipo:

    Scorro gli elementi della tabella e li confronto con quelli nell'array:
    INSERT record se non è già nella tabella
    DELETE record se non è nell'array

    Esiste un metodo più veloce....???
    Grazie

  2. #2
    Moderatore di Off Topic, Kickstarter e XML L'avatar di Sky
    Registrato dal
    Jul 2000
    residenza
    Roma
    Messaggi
    1,053
    Un metodo, secondo me, potrebbe essere questo.

    Una query DELETE eseguendo un confronto con l'operatore NOT IN nella clausola WHERE. Puoi specificare un numero qualsiasi di elementi (che nel tuo caso prenderai dall'array) separati da una virgola.
    Esempio: DELETE FROM tabella WHERE id NOT IN (valore1, valore2, valore3, ...)

    Dopodiché inserimento dei record specificando nella query INSERT che i valori duplicati non devono generare errori ma vanno ignorati. Per fare questo si presuppone che sia specificato un indice (primary o unique) sulla colonna di riferimento (id nel tuo caso). Nella query, invece, dovrai inserire "IGNORE" dopo la parola "INSERT".
    Esempio: INSERT IGNORE INTO tabella ecc ecc...

    Ciao ciao :)
    Lo Stato deve dare ai cittadini, come diritto, ciò che la mafia dà come favore.
    Carlo Alberto dalla Chiesa

    Facebook | Twitter | Last.fm | LinkedIn | Quora

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.