Gå til innhold

[Løst] Update hvis not exists?


Anbefalte innlegg

Jeg har et felt som skal inneholde flere navn, adskilt med f.eks |, er det noen mulighet for å lage en UPDATE query som kun oppdaterer feltet så lenge navnet ikke finnes i feltet fra før?

 

SEr for meg noe slikt:

$navn = $_POST['navn'];
$id = $_POST['id'];

$sql = "UPDATE database SET navn = CONCAT_WS('|', navn, '$navn') WHERE id = $id IF NOT EXISTS"

Lenke til kommentar
Videoannonse
Annonse

Det der vil ikke fungere, et søk på John vil treffe Johnny. Du kan korrigere det på diverse måter, men jeg syntes du heller bør ha tre tabeller, en med navn, en med "hovedraden" eller hva du vil kalle den, og en linktabell.

 

klasse: {

id: int, pk

}

 

navn: {

id: int, pk,

navn: string

}

 

klasse_navn: {

klasse_id: int, pk

navn_id: int, pk

}

 

Da blir spørringen noe som dette:

INSERT IGNORE INTO klasse_navn(klasse_id, navn_id) VALUES (1,1);

 

Ved å ha PK på begge felt og bruke IGNORE sørger du for at du ikke får duplikater.

Lenke til kommentar

Det der vil ikke fungere, et søk på John vil treffe Johnny. Du kan korrigere det på diverse måter, men jeg syntes du heller bør ha tre tabeller, en med navn, en med "hovedraden" eller hva du vil kalle den, og en linktabell.

 

Nå har han jo WHERE id = $id som minker muligheten for det betraktelig. Men muligheten er jo der, men veldig liten :)

 

jvc1986, du bør vurdere JohndoeMAKT sin løsning.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...