Visualizzazione dei risultati da 1 a 7 su 7

Discussione: [MySql] Insert select

  1. #1

    [MySql] Insert select

    Buon giorno a tutti.
    Ho 3 campi:nominativo(mario rossi), nome(), cognome().
    Dovrei prendere dal campo nominativo il primo valore(mario) ed inserirlo nel campo nome.
    Cosi come per campo nominativo il secondo valore(rossi) ed inserirlo nel campo cognome.
    Capisco che in tanti casi potrei trovare doppi nomi,cognomi o tripli cognomi
    (esempio: lucrezia lante della rovere) però almeno capire il meccanismo.

    Questo esempio l'ho preso in internet, ma come posso adattarlo a mio favore?
    codice:
    INSERT INTO nome
    (nominativo)
    SELECT nominativo
    FROM tb_rubrica;
    
    Grazie mille.

  2. #2
    codice:
    INSERT INTO TB_RUBRICA
    (NOME)
    SELECT SUBSTRING( TRIM( NOMINATIVO ) , 1, 5 ) AS NOME
    FROM TB_RUBRICA;
    Però dovrei sapere la lunghezza del primo valore, cosi come la prima occorrenza(spazio) che separa il primo valore(nome) dal secondo(cognome).
    Come faccio?

  3. #3
    ho risolto cosi:
    codice:
    INSERT INTO tb_archivio_rubrica
    (nome,cognome)
    SELECT SUBSTRING_INDEX(nominativo,' ', 1) as nome,
    SUBSTRING_INDEX(nominativo,' ', -1) as cognome
    FROM tb_rubrica
    Però resta il problema dei doppi nomi,cognomi o tripli cognomi.
    Sapete come gestire questa cosa?
    Grazie mille.

  4. #4
    Quote Originariamente inviata da ANTAGONIA Visualizza il messaggio
    ho risolto cosi:
    codice:
    INSERT INTO tb_archivio_rubrica
    (nome,cognome)
    SELECT SUBSTRING_INDEX(nominativo,' ', 1) as nome,
    SUBSTRING_INDEX(nominativo,' ', -1) as cognome
    FROM tb_rubrica
    Però resta il problema dei doppi nomi,cognomi o tripli cognomi.
    Sapete come gestire questa cosa?
    Grazie mille.

    o definisci delle regole precise oppure mi sembra difficile dare un modo comune per risolvere la questione...

    Alle bruttissime, quei nominativi particolari (doppi nomi o doppi cognomi) li gestisci manualmente.
    Non si può risolvere un problema usando lo stesso modo di pensare che ha creato quel problema.
    Albert Einstein

    Siate Affamati, siate Folli, siate Onesti e siate Generosi

  5. #5
    Utente bannato
    Registrato dal
    Nov 2007
    residenza
    Acicatena (Catania)
    Messaggi
    1,854
    Esatto, stavo proprio per suggerirti di usare lo split.

    Non credo che esista un modo per distinguere un nome da un cognome...

  6. #6
    vi ringrazio, dei suggerimenti, ma, non so da dove partire.
    quando dite "definisci delle regole precise", quali regole e come?
    Insomma un esempio per poter capire meglio.

  7. #7
    anzi per meglio dire mi serviva un update non una insert ma comunque poco male:
    codice:
    UPDATE tb_rubrica
    SET 
    nome=(SUBSTRING_INDEX(nominativo,' ', 1)),
    cognome=(SUBSTRING_INDEX(nominativo,' ', -1))
    where id_user=5

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.