Mahdollista?

Onko mahdollista solut jotenkin yhdistää?

Rakenne on:

etunimi (varchar), sukunimi (varshar), osoite (varshar), puhelin (varshar)

Data on useasta lähteestä yhdistetty ja on epätäydellinen:

"Matti", "Virtanen", "NULL", "NULL"
"Matti", "Virtanen", "Osoite 123", "NULL"
"Matti", "Virtanen", "NULL", "123-321-123"

Ja nyt pitäisi nämä solut yhdistää, niin että lopputulos olisi:

"Matti", "Virtanen", "Osoite 123", "123-321-123"
6353
Äänestä

Muut lukivat myös

Vastaukset 6

Vanhimmat

Miksi ihmeessä, et tietojen syöttävaiheessa tarkistanut ja laittanut tietoja oikealle paikalle huomattavasti helpompaa?

Onnistuu toi kohtalaisen helposti nytkin.

1) Luo samanlainen taulu, kannattaa lisätä ainaskin yksinollinen id kenttä

2) Tee kysely
INSERT INTO `testi2` ( `nimi` , `sukunimi` , `osoite`)
SELECT nimi, sukunimi, osoite
FROM testi
WHERE
osoite IS NOT NULL
GROUP BY nimi,sukunimi


3) Tee kysely
SELECT nimi, sukunimi, puhelin
FROM testi
WHERE
puhelin IS NOT NULL
GROUP BY nimi,sukunimi

ja syötä normaalilla update kyselyllä tiedot oikealle paikalle. Kai ne tiedot sais suoraankin menemään, mutta en tiedä miten.


4) Tarkista onko tiedot uudessa taulussa oikein

5) Tuhoa vanha ja nimeä uusi vanhan nimellä.


Toi sinun systeemi hajoaa kun tuleekin samanniminen ihminen, tämän takia pitää olla joku yksilöivä tieto kuten id.... tällöin tietojen päivittäminen, poistaminen.... on helpompaa. Jos toi on jokin asiakasrekisteri jne.... niin useamman taulun juttu olisi kenties parempa tarkoitukseesi.


Noissa esimerkeissä testi = vanha taulu, testi2 = uusi taulu. Esimerkki mietitty nopeesti, joten parempia keinoja voi olla ja välttämättä esimerkki ei edes toimi kunnolla. Uusimmalla myslillä testasin ton.

Äänestä
  • >ja syötä normaalilla update kyselyllä tiedot oikealle paikalle.

    Miten tuo tarkalleen onnistuu?

    Äänestä

  • alkup. kirjoitti:

    >ja syötä normaalilla update kyselyllä tiedot oikealle paikalle.

    Miten tuo tarkalleen onnistuu?

    UPDATE taulu SET nimi = 'xxx', sukunimi = 'yyy' WHERE id = 123

    Äänestä

  • montenegro kirjoitti:

    UPDATE taulu SET nimi = 'xxx', sukunimi = 'yyy' WHERE id = 123

    Kaikki kentät, ei yksi kerrallaan.

    Tuolla groupilla saa kaikki uniikkinimet uuteen taulukkoon, mutta miten muut tiedot saa päivitettyä?

    Äänestä

  • alkup. kirjoitti:

    Kaikki kentät, ei yksi kerrallaan.

    Tuolla groupilla saa kaikki uniikkinimet uuteen taulukkoon, mutta miten muut tiedot saa päivitettyä?

    Minun tietääkseni ainoa keino on toi UPDATElla yksitellen. Siis, teet scriptin pätkän joka tekee ton aikasemman mainitun kyselyn ja sitten vain silmukassa päivittelee tiedot uuteen taulukkoon oikealle paikalle.

    Et siis syötä käsineen niitä tietoja yksitellen, joka olisi hidasta, varsinkin jos tietoja paljon.

    Äänestä

  • Jokunen kirjoitti:

    Minun tietääkseni ainoa keino on toi UPDATElla yksitellen. Siis, teet scriptin pätkän joka tekee ton aikasemman mainitun kyselyn ja sitten vain silmukassa päivittelee tiedot uuteen taulukkoon oikealle paikalle.

    Et siis syötä käsineen niitä tietoja yksitellen, joka olisi hidasta, varsinkin jos tietoja paljon.

    UPDATE taulu SET joku="jotain" WHERE toinen="jotain"

    Äänestä

Kommentoi aloitusta


yhdistäminen kirjoitti:

Onko mahdollista solut jotenkin yhdistää?

Rakenne on:

etunimi (varchar), sukunimi (varshar), osoite (varshar), puhelin (varshar)

Data on useasta lähteestä yhdistetty ja on epätäydellinen:

"Matti", "Virtanen", "NULL", "NULL"
"Matti", "Virtanen", "Osoite 123", "NULL"
"Matti", "Virtanen", "NULL", "123-321-123"

Ja nyt pitäisi nämä solut yhdistää, niin että lopputulos olisi:

"Matti", "Virtanen", "Osoite 123", "123-321-123"

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu