如何通过将另一个表的子字符串列值与主表的子字符串列值进行比较来更新一个表的列值(必须比较前9个字符)。 像:表1
ID Text ValueToSet 1 Chris0123-!@# updated_value 2 John 3 Paul
表2
ID Text ValueToSet 1 Mitchell Johnson ABC 2 Chris0123@N/A DEF 3 Steven GHI
“ updated_value”必须更新为“ DEF”。
答案 0 :(得分:0)
您似乎正在寻找具有JOIN的UPDATE:
UPDATE table1 t1
INNER JOIN table2 t2
ON t2.text LIKE CONCAT('%', t1.text, '%')
SET t1.table2id = t2.id
编辑OP后,这是一种使用SUBSTR()比较字符串的前9个字符的解决方案
UPDATE table1 t1
INNER JOIN table2 t2
ON SUBSTR(t2.text, 1, 9) = SUBSTR(t1.text, 1, 9)
SET t1.table2id = t2.id