如何在SQL中更新类似于%another column%的列

时间:2013-10-18 05:50:43

标签: sql sql-server

我想根据另一个表中的值在表上运行更新。

所以我Table 1Column A

Table 2Column B

我想运行更新,以便如果A列与LI列相似,则A列中的每一行都会更新为“RANDOM STRING”。

到此为止非常简单。但是,B列中的字符串可能出现在A列的字符串中的任何位置。

所以查询应该像这样运行

UPDATE Table1
SET ColumnA = 'RANDOM STRING'
WHERE ColumnA LIKE '%Table2.ColumnB%'

但是当我使用它时没有行更新,尽管WHERE条件肯定会返回结果

我正在运行SQL server 2008

2 个答案:

答案 0 :(得分:3)

试试这个

update table1
set  ColumnA = 'RANDOM STRING'
where ColumnA in  
(select table1.ColumnA from table1 inner join table2 on table1.ColumnA like '%'+Table2.ColumnB+'%')

答案 1 :(得分:0)

在MySql中, 你可以这样做。

UPDATE Table1
SET ColumnA = 'RANDOM STRING' from table1 , table2
WHERE table1.ColumnA LIKE concat('%',table2.columnb,'%')