Om du vill uppdatera alla rader i data
tabell kan du göra något så här:
UPDATE data
LEFT
JOIN node
ON node.title = data.name
SET data.id = node.nid
ANMÄRKNINGAR:
Om det finns flera rader i node
med samma värde för title
, som matchar ett name
i data
, det är obestämt vilken av dessa rader värdet på nid
kommer att tilldelas från.
Om det finns värden för name
i data
tabell som inte finns i node
tabell (i title
kolumn), kommer ett NULL-värde att tilldelas till id
kolumn.
Vissa justeringar av frågan kan ändra detta beteende.
Det är möjligt att åstadkomma detta med en underfråga, men jag skulle bara använda en join-operation. Jag tror att du kan använda en korrelerad underfråga, så här:
UPDATE data
SET data.id = ( SELECT node.nid
FROM node
WHERE node.title = data.name
ORDER BY node.nid
LIMIT 1
)