Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    2,460

    [MySql] query più veloce per verificare se un campo esiste

    attualmente faccio la select count(*), però su tanti record credo che rallenti molto, cosa posso usare per verificare se un campo è esistente o meno in una tabella ?

  2. #2
    Vorse volevi dire un valore in un campo.... e non un campo in una tabella....

    SELECT COUNT(*)

    e' il piu' veloce. si limita a contare i record senza estrarre nulla. se poi il campo che vuoi contare fosse indicizzato conta solo sull'indice.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    2,460
    No intendo proprio se un campo esiste già in una tabella o no.
    Avendo a che fare con milioni di record, se il campo esiste nella tabella faccio una update altrimenti faccio insert..

  4. #4
    Originariamente inviato da uMoR
    No intendo proprio se un campo esiste già in una tabella o no.
    Avendo a che fare con milioni di record, se il campo esiste nella tabella faccio una update altrimenti faccio insert..
    il campo e' un elemento della tabella. Quindi tu vuoi conoscere se esiste gia' un certo contenuto in un definito campo. Non se esiste un campo (field) in una tabella.

    due vie ... il count(*) oppure se il campo in questione e UNIQUE oppure chiave primaria eseguire REPLACE al posto di INSERT/UPDATE. Replace se trova un record identico come chiave primaria o come chiave UNIQUE cancella il record e inserisce il nuovo dato, altrimenti lo inserisce (aggiunge) semplicemente. attenzione che replace cancella e riscrive, quindi cambia l'id a meno che l'id non sia lo stesso ovviamente.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    2,460
    Il fatto è che io ho un campo "peso" che dovrei incrementare di 1 unità in caso fosse già presente, con la replace non funziona vero ?

  6. #6
    Originariamente inviato da uMoR
    Il fatto è che io ho un campo "peso" che dovrei incrementare di 1 unità in caso fosse già presente, con la replace non funziona vero ?
    Ovviamente no.

    Prova ad estrarre l'id del record nel caso esista, cosi' per l'eventuale update punterai direttamente il record da aggiornare tramite l'id senza rifare nuovamente la ricerca sulla tabella.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.