nasıl av MySQL Serverversion 5.5 üzerinde bir IF koşulu çalıştırabilirim koşul Serverversion üzerinde IF çalıştırmak nasıl? Benim XAMPP localhost sunucusunda 5.5
a.column1 = IF(b.column2 = 'STRING', '2012-01-01', a.column1)
yukarıdaki kodu (serverversion 10) mükemmel çalışıyor, ama benim ev sahibi sağlayıcı Serverversion 5.5 çalışır ve yukarıdaki kod hata # 1064 orada alır - Eğer SQL sözdizimi bir hata var;
herhangi bir geçici bir çözüm biliyor mu?
DÜZENLEME: sorgusuna gerisi nerede:
UPDATE table1 a INNER JOIN table2 b ON (a.id = b.other_id) SET
b.column1='something',
a.column1 = IF(b.column2 = 'STRING', '2012-01-01', a.column1)
WHERE a.id = '41' AND b.other_id = '3150'
Ve ben daha önce dediğim gibi, bu sorgu XAMPP (Serverversion 10) üzerinde mükemmel çalışır ama benim webbhost hata # 1064 olsun (serverversion 5.5) .
EDIT 2: IF deyimini CASE ile repelece etmeyi denedim, ancak işe yaramayacağım. Neyi yanlış yapıyorum?
UPDATE table1 a INNER JOIN table2 b ON (a.id = b.other_id) SET
b.column1='something'
CASE
WHEN b.column2 = 'STRING' THEN a.column2 = '2012-01-01'
ELSE NULL
END
WHERE a.id='3' AND b.other_id = '3'
de bu çalışıyorum Been, ancak hata # 1064 alma ya çalışmaz:
UPDATE table1 a INNER JOIN table2 b ON (a.id = b.other_id)
SET a.column2 = CASE
WHEN b.column2 = 'STRING' THEN '2012-01-01',
ELSE a.column2
END
b.column1='something'
WHERE a.id='3' AND b.other_id = '3'
doğru görünüyor - Eğer tüm SQL sorgusu sonrası olabilir? – Gerfried
Bir geçici çözüm için, bir vaka yapısı hile yapardı. –
Hayır, çalışmıyor. Sorgu yürütülür, ancak hiçbir değer değişmez. – Anna