【问题标题】:SQL SELECT WHERE Columns Data begins and ends with [ ] i.e. [Unchecked] [duplicate]SQL SELECT WHERE Columns 数据以 [ ] 开头和结尾,即 [Unchecked] [duplicate]
【发布时间】:2014-06-03 09:35:42
【问题描述】:

正如标题所说,我试图在我的数据库中执行一个 select 语句来查找以方括号开头和结尾的数据,即 [Unchecked]

我已尝试使用 like 进行以下选择查询,但似乎不正确...

SELECT * FROM [DB_Table] WHERE [DB_Column] LIKE '[%'

这似乎没有得到任何以[ 开头的数据。虽然如果我将[ 更改为诸如 A 之类的字母,它会获取所有以 A 开头的数据。

是否可以Like '[%'(开头)和'%]'(结尾)?

此链接How can I escape square brackets in a LIKE clause? 不是我的复制品,它完全不同。

【问题讨论】:

  • 请先做个调查再提问:stackoverflow.com/questions/439495/…
  • 我不明白为什么当我对其进行研究时,这个问题会被否决。
  • 好吧,我只是发表了评论,从未对你投过反对票。我希望反对票的人能解释一下。
  • 感谢您的回答:)

标签: sql database sql-like


【解决方案1】:

将您的查询更改为

SELECT * FROM [DB_Table] WHERE [DB_Column] Like '[[]%'

您需要将“[”括在方括号中以对其进行转义并将其视为要用于搜索的文本。请注意,这是针对 SQL Server 的。

另外,如果您想搜索以 '[' 开头并以 ']' 结尾的值,您可以这样做:

SELECT * FROM [DB_Table] WHERE [DB_Column] Like '[[]%]'

【讨论】:

  • 第二个查询效果很好,非常感谢!
  • 很高兴听到这个消息。但是,请注意,正如其他人在 cmets 中指出的那样,研究不仅仅意味着尝试查询。这意味着参考文档和其他来源,以查看您面临的问题是否常见并且是否有详细记录的解决方案。
【解决方案2】:

试试这个...

SELECT * FROM [DB_Table] 
WHERE [DB_Column] Like '\[%' ESCAPE '\'

或

SELECT * FROM [DB_Table] 
WHERE [DB_Column] Like '%\[Unchecked\]%' ESCAPE '\'

【讨论】:

  • 这是否只搜索以 [ 开头的?它确实很好用,只是想知道我是否将 ..ESCAPE ']%\' 添加到结尾引号会更有效。
  • 我不知道你的表中有什么样的数据。无论适合您选择哪种方法:)
猜你喜欢
  • 2014-10-14
  • 2020-12-27
  • 1970-01-01
  • 2016-06-28
  • 1970-01-01
  • 1970-01-01
  • 2012-02-26
  • 1970-01-01
  • 2021-01-04
相关资源
最近更新 更多