Oracle Update表以分号分隔值设置特定属性值

时间:2015-07-23 10:27:57

标签: sql oracle

我有一个列,其中包含以下值:

Y

现在,我想为N var d = new Date() var n = d.getTimezoneOffset(); 的所有行更新New_eMail属性,而不会影响其他任何内容。

请告知。

3 个答案:

答案 0 :(得分:2)

我讨厌但是......

update table
   set column = replace(column,'New_eMail+Y','New_eMail+N')
where column like '%New_eMail+Y%'

你不需要WHERE子句但是如果你在表上放置一个功能索引它可能会更快

答案 1 :(得分:1)

我的答案比用户davegreen100的答案略有改进 由于他们不允许我将其作为评论发布,我在此处添加。

update <<tablename>>
  set <<columnname>> = replace(<<columnname>>,';New_eMail+Y;',';New_eMail+N;')
where <<columnname>> like '%;New_eMail+Y;%'

答案 2 :(得分:1)

因为它可能是字符串中唯一一个&#39; + Y;&#39;发生以下声明可能会解决问题:

update <your_table> 
  set <your_column> = replace(<your_column>,'+Y;','+N;')
  where instr(<your_column>,'+Y;')>0

此解决方案与其他解决方案不同,因为它不依赖于电子邮件地址的值。