Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [mysql] ricerca id record corrente

    Salve
    non so se mi sono spiegato dal titolo, quindi preciso:
    data la tabella Pippo con i campi ID, col1, col2 col3
    nella col3 devo inserire un dato il cui nome è costituito dal suo ID concatenato con '$dato' con '$dato' in arrivo da programma php, record di es.:
    ID 7 col1 pluto1 col2 pluto2 col3 7pluto3.

    Come implemento una query del genere con mysql? Ammesso che la si possa implementare?

  2. #2

  3. #3
    il chè è ok, ma devo fare due query.. una SELECT ecc... e poi un'altra INSERT con l'ID trovato... oppure c'è un sistema per fare l'operazione con una query?

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    1,469
    insert into con on duplicate key per fare l'update invece dell'insert

  5. #5
    Urca!
    In effetti così funzia, grazie

  6. #6
    e invece non funzia... ha funzionato una volta, poi vattelappesca .. non funziona più

    INSERT INTO libri (autore,titolo, casa) VALUES ('calvino','il sentiero dei nidi di ragno','einaudi')
    ON DUPLICATE KEY UPDATE casa='rizzoli'

    inserisce solo i tre VALUES e non fa l'update ... che succede?

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    1,469
    ma c'è una chiave definita? perchè se l'insert non "cozza" su una chiave duplicata (unique) ovviamente aggiunge e basta

  8. #8
    c'è ID che è primary key (ho letto qui che va bene), ma non fa l'update.

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    1,469
    Originariamente inviato da saggio68
    c'è ID che è primary key (ho letto qui che va bene), ma non fa l'update.
    ahem... devi mettere la chiave dentro la insert, sennò come fa a "scattare" il duplicate keys?
    Se per ID intendi un campo autoincrementante, OVVIAMENTE non funzionerà mai.

    Perchè ad ogni insert ti metterà un ID nuovo (aggiunto) e niente collisione

    INSERT INTO libri (autore,titolo, casa) VALUES ('calvino','il sentiero dei nidi di ragno','einaudi')
    ON DUPLICATE KEY UPDATE casa='rizzoli'

    Se autore e titolo non cambiano mai (cambia solo la casa), puoi fare qualcosa tipo aggiungere un campo chiave intera (... chiave primaria ovviamente...) che userai così

    chiave=crc32(concat(autore,titolo))

    e ci metti un bel
    INSERT INTO libri (chiave, autore,titolo,casa) VALUES (crc32(concat('calvino','il sentiero dei nidi di ragno')),'calvino','il sentiero dei nidi di ragno','einaudi')
    ON DUPLICATE KEY UPDATE casa='rizzoli'

    questo dovrebbe funzionare (se non hai un numero gigantesco di libri, milioni)

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.