【问题标题】:Using WHERE for partial field match - How使用 WHERE 进行部分字段匹配 - 如何
【发布时间】:2013-02-06 19:34:27
【问题描述】:

您好,这是我的第一篇文章,我对 SQL 还很陌生。我真正想要找到的是一个相当于 MID$ 的东西,我可以在其中根据字段的一部分进行更新。

    UPDATE OurTable
 SET UpdateField='Text-2008-001-old'
  WHERE '2008' like ('%' || UpdateField) AND KeyField='1'

换句话说,我想更新为“Text-2008-001-old”,该字段当前可能是“Line-2008-000-000”

2008 年的位置在现有数据中没有改变,所以我只需要更新和包含 2008 年 KeyField 为“1”的字段

如果我还没有找到很好的 SQL 语法在线资源,请随时指出我那里。

希望我已经对此进行了解释,并提前感谢所有建议。

【问题讨论】:

标签: sql field match partial


【解决方案1】:

我认为你只需要使用 LIKE:

UPDATE OurTable
SET UpdateField='Text-2008-001-old'
WHERE UpdateField LIKE '%2008%' AND KeyField='1'

或者如果它周围总是有破折号,也许LIKE '%-2008-%'会更好。

祝你好运。

【讨论】:

  • 谢谢,您的建议非常适合我的需要。 [code] WHERE UpdateField LIKE '%2008%' AND KeyField='1' [/code]
【解决方案2】:

更新 OurTable SET UpdateField='Text-2008-001-old' WHERE UpdateField like 'Line-2008%' AND KeyField='1'

【讨论】:

    【解决方案3】:

    有许多通配符可与 LIKE 运算符(%、_、[]、[^] 等)一起使用——在此解释:http://msdn.microsoft.com/en-us/library/ms179859.aspx

    还有 substring() 函数——在这里解释:http://msdn.microsoft.com/en-us/library/ms187748.aspx,这有点像其他语言中的 MID 函数。 (WHERE...LIKE SUBSTRING(...))

    【讨论】:

    • 抱歉——顺便说一句,这就是 TSQL 的全部内容——不确定你对哪种方言感兴趣。
    猜你喜欢
    • 2011-05-22
    • 1970-01-01
    • 2020-10-16
    • 2018-10-13
    • 2011-09-23
    • 1970-01-01
    • 2018-03-26
    • 1970-01-01
    • 2019-07-01
    相关资源
    最近更新 更多