我有一个包含三列的表。如果另一列包含字符串,则更新列
column1 column2 column3
mytestdata test
myotherdata test
我想插入“somestring”到栏3,如果列1包含在列2的值
结果会是什么样子:
column1 column2 column3
mytestdata test 'somestring'
myotherdata test
我有一个包含三列的表。如果另一列包含字符串,则更新列
column1 column2 column3
mytestdata test
myotherdata test
我想插入“somestring”到栏3,如果列1包含在列2的值
结果会是什么样子:
column1 column2 column3
mytestdata test 'somestring'
myotherdata test
你可以做类似下面
UPDATE tmp
SET
column3 = (CASE WHEN tmp.column1 like '%' + tmp.column2 + '%' THEN 'something' ELSE tmp.column3')
FROM
tablename tmp
根据RDBMS,您有几个选项。
对于MySQL和甲骨文:
UPDATE yourTable
set column3 = 'somestring'
where INSTR(column2, column1) > 0
对于SQL Server:
UPDATE yourTable
set column3 = 'somestring'
where CHARINDEX(column1, column2) > 0
如果column2 ='5%'会发生什么? – egrunin
它也可以工作:其中column1与'%5 %%'相同,与'%5%'相同。我很确定有关sql服务器,我相信其他rdbms以相同的方式工作。 –
更新了解决'%'潜在问题的答案 –
SQL服务器:
UPDATE theTable SET column3 = 'somestring'
WHERE CHARINDEX (column2, column1) > 0
让我们知道RDBMS –
如果column2以'%'开头或以'%'结尾,我很确定以下使用字符串连接的示例会失败 – egrunin
您如何编辑标签,确保OPs RDBMS? –