SQL IF ERROR
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfeuern
code
dokumentation
entscheiden
feinheit
frage
hilfe
kenntnisstand
logik
null
richtigkeit
server
set
speichern
statement
syntax
tip
update
verarbeiten
verschwendung
-
Hallo,
leider braue ich schon wieder eure Hilfe. Diesmal geht es um folgenes SQL
if ((select fk_lyrics from tlb_songs where pk_id='4') <> '-1', (UPDATE tlb_lyrics1 SET lyric='aaa' WHERE pk_id=1), (Insert into tlb_lyrics1 (pk_id,lyric) Values (NULL,'bbb') ) )
Die Fehlermeldung lautet:
if( ( SELECT fk_lyrics FROM tlb_songs WHERE pk_id = '4' ) <> '-1', ( UPDATE tlb_lyrics1 SET lyric = 'aaa' WHERE pk_id =1 ), ( INSERT INTO tlb_lyrics1( pk_id, lyric ) VALUES ( NULL , 'bbb' ) ) ) MySQL meldet: Dokumentation #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'if ((select fk_lyrics from tlb_songs where pk_id='4') <> '-1', (UPDATE tlb_lyri' at line 1
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Also nach meinem Kenntnisstand ist solch ein Konstrukt wie das was du da versuchst in SQL überhaupt nicht möglich.
Du musst erst das Select Statement ausführen und dann anhand des Results entscheiden ob du ein Update oder ein Insert ausführen willst.
Oder erklär uns was du genau machen willst. Ist ja nicht so das SQL nicht doch die ein oder andere Feinheit bietet. -
Ich hatte genau das vor, wenn das Result -1 ist, dann soll ein Insert ausgeführt werden. Wenn <> -1 dann ein Update
-
Dann musst du erst wie schon angedeutet das Select Statement verarbeiten lassen und dir das Result dazu holen.
Ich verstehe zwar nicht warum du an der einen Stelle nach PK 4 fragst und dann PK 1 aktualisierst, aber das wird wohl schon seine Richtigkeit haben. -
pk=4 = ist in der tlb_songs
pk=1 ist in der tlb_lyrics
:-)
Ok, dann werd ich wohl wirklich zuerst einen Select abfeuern und dann den Update / Insert.
Währe so ein If Konstrukt über eine Stored Procedure möglich ?
Ich frage dehalb, da ich von Java aus in die Mysql greife und ich im Java möglichst wenig SQLś habe möchte.
Beitrag zuletzt geändert: 7.10.2009 18:05:35 von qwertz4 -
Naja, die Store Procedure macht effektiv ja nichts anderes als diese Logik abzubilden und für so ein statisches Konstrukt halte ich eine SP für übertrieben. Zumal die SPs immer im Speicher gehalten werden müssen.
-
Danke für die Hilfe. Die Tipps waren echt sehr nützlich für mich.
Die Stored Procedure sehe ich jetzt im auch als "Verschwendung"
Ich habe jetzt das ganze im Java Code durch enen Select und dann ein IF gelöst.
Der Thread kann damit geschlossen werden.
nikic: done
Beitrag zuletzt geändert: 10.10.2009 19:36:46 von nikic -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage