更新MYSQL查询列的子字符串形式不同的表

时间:2019-01-28 23:33:29

标签: mysql sql

如何通过将另一个表的子字符串列值与主表的子字符串列值进行比较来更新一个表的列值(必须比较前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”。

1 个答案:

答案 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