我有兩個表TableA
和TableB
。 TableA
和TableB
都包含以下列:name
,member_id
。 TableB
當前包含member_id
的「正確」值,而TableA
沒有。用LIKE寫一個UPDATE查詢
我希望做的是在TableB
member_id
列遷移所有值在TableA
相應列(由值列name
列進行匹配)。但是,有時這兩個表格中的名稱的輸入方式稍有不同。
我寫了下面這個SQL查詢,雖然WHEN EXISTS
下的子查詢不正確。有人可以幫助我嗎?謝謝。
UPDATE TableA
SET member_id =
CASE
WHEN EXISTS
(SELECT member_id
FROM TableB
WHERE TableB.name ILIKE '%' || 'TableA.name' || '%'
LIMIT 1)
THEN member_id
ELSE '1'
END
WHERE
TableA.member_id = '0'
另外,我將其設置使得當是member_id
未知的,它被設置爲0。ELSE '1'
cluase是將0更新到1中的member_id
列,以便我知道查詢運行和改性該行已經。
澄清:我希望設置TableA.member_id
= TableB.member_id
其中TableA.name
類似於TableB.name
。 0和1用於調試,而不是最終目標。
首先,'TableA.name'不應該加引號。 – Tomalak