1
我有這樣的要求:做一個更新不知道ID
UPDATE PEOPLE SET ID_STATE = 5 WHERE ID_STATE IN (3,4);
我會提出同樣的要求,但如果我不知道ID_STATE
但只是labelStatePeople
SELECT ID_STATE FROM STATE_PEOPLE WHERE labelStatePeople = 'blue';
實例:
$1 = SELECT ID_STATE FROM STATE_PEOPLE WHERE labelStatePeople = 'blue';
$2 = SELECT ID_STATE FROM STATE_PEOPLE WHERE labelStatePeople = 'yellow';
$3 = SELECT ID_STATE FROM STATE_PEOPLE WHERE labelStatePeople = 'red';
最後的請求:UPDATE PEOPLE SET ID_STATE = $1 WHERE ID_STATE IN ($2,$3);
我更新了我的文章,以更好地理解我的問題 – Mercer
出於好奇,是否出於性能原因需要「不是NULL」? (假設該列可以爲NULL) – kamilk
@kamilk,不,原因是如果子qeury返回NULL,則WHERE子句將爲false,並且根本不會更新任何行 - 即使子qury也是返回有效的ID_STATE值。 (非常常見的錯誤) – jarlh