我在AA SELECT查詢一如既往使用IF():可以在SELECT查詢中使用IF(),但不更新
SELECT
IF(p.A=value,p.B,p.C) AS photo
FROM prof p
WHERE...
但是當我使用UPDATE和IF()這樣的SQL好像不是工作,在UPDATE查詢中不能使用If()是否正常?
UPDATE table
SET IF(p.A=value,p.B,p.C) = value2
WHERE...
我在AA SELECT查詢一如既往使用IF():可以在SELECT查詢中使用IF(),但不更新
SELECT
IF(p.A=value,p.B,p.C) AS photo
FROM prof p
WHERE...
但是當我使用UPDATE和IF()這樣的SQL好像不是工作,在UPDATE查詢中不能使用If()是否正常?
UPDATE table
SET IF(p.A=value,p.B,p.C) = value2
WHERE...
我想你可以重新工作的邏輯來此
p.B = if(p.A=$value, $value2, p.B), // set B=$value2 is p.A=$value
p.C = if(p.A=$value, p.C, $value2) // set C=$value2 where p.A<>$value
UPDATE
table
SET
value2 = (SELECT IF(p.A=value,p.B,p.C) AS photo FROM prof p WHERE table.id=...)
,僅在MySQL 4.1+
可以解釋爲什麼downvote? – Peter
您需要使用CASE ....當... THEN這樣
UPDATE table
SET PA = ( CASE WHEN ( pA == value) THEN value2 ELSE value3 END ) WHERE ......
不工作也許是因爲我使用PHP/SQL – Anon
完美。謝謝隊友 – Anon