如何使用 contains 来查找包含空格的关键字?

Posted

技术标签:

【中文标题】如何使用 contains 来查找包含空格的关键字?【英文标题】:How can I use contains to look for keyword including a space? 【发布时间】:2019-05-29 21:19:21 【问题描述】:

我想使用contains 搜索一个左右两边都有一个空格的单词。但它不起作用..

SELECT *
FROM mytable
WHERE Contains(name, ' Hertz ');

任何帮助表示赞赏..

【问题讨论】:

我不太确定您是否可以使用 CONTAINS 来搜索结尾字符。您可以使用通配符 * (CONTAINS(name, '" *"Hertz')) 搜索前缀。您可能需要添加一个附加子句来验证最后一个字符是否为空格。 对于所有回答的人,OP 要求CONTAINS 使用全文索引并且行为不同于LIKE 您可以将 where 条件写为 - WHERE a.name like ' %% ' 检查我的答案。 @Janna 你可以在 dba.stackexchange.com 上发帖试试运气 【参考方案1】:

你可以试试这个

SELECT a.name
  FROM mytable a
   WHERE a.name like ' %% '

SELECT a.name
      FROM mytable a
       WHERE a.name like' % '

你可以找到现场演示Demo here

【讨论】:

【参考方案2】:

试试这个

Select * from mytable where replace(name,' ','')='Hertz'

您还可以使用ltrimrtrim 在运行时删除空格以匹配名称值。

【讨论】:

【参考方案3】:

如果您使用 like 运算符,则无需在其之间留空格,如下所示

select * from mytable where name like '%her%'

如果你想要有空格的数据,你可以像下面这样使用

select * from mytable where name like '_%hertz%_'

如果我们使用下划线,它将跳过特定的位置元素并搜索数据。

【讨论】:

【参考方案4】:

要搜索包含空格,您需要将表达式用双引号括起来,例如:

SELECT *
FROM mytable
WHERE CONTAINS(name, '" Hertz "');

当然这也可以用 LIKE 来写(虽然在处理大数据集时效率会低一些):

SELECT *
FROM mytable
WHERE name LIKE '% Hertz %');

【讨论】:

【参考方案5】:

您可以 LTRIM RTRIM 列并且可以获取值。

create table #temp
(
name varchar(50)
)

insert into #temp values(' hertz')

insert into #temp values('hertz ')

insert into #temp values('hertzx')

insert into #temp values('hertz')

select * from #temp where LTRIM(RTRIM(name)) like '%hertz%'

如果您想在查询下方的开始或结束使用中搜索它是否有空格。

select * from #temp where name like ' %'

select * from #temp where name like '% '

【讨论】:

【参考方案6】:

你可以试试这个

SELECT *
FROM mytable
WHERE name Like '% Hertz %'

【讨论】:

【参考方案7】:

尝试如下。

SELECT *
FROM mytable
WHERE name LIKE '% Hertz %'

Learn more about like operator

【讨论】:

【参考方案8】:

试试这个:

SELECT *
FROM mytable
WHERE name=' Hertz '

如果赫兹只是一个例子,你可以使用:

SELECT *
FROM mytable
WHERE name like ' % '

这将返回所有在第一个和最后一个位置带有空格的名称

【讨论】:

以上是关于如何使用 contains 来查找包含空格的关键字?的主要内容,如果未能解决你的问题,请参考以下文章

LINUX VI编辑器里怎么查找带空格和符号的关键字。

Linux如何查找处理文件名后包含空格的文件

当有前导空格时,为啥 Pandas series.str.contains 方法无法检测到匹配?

slenium 定位text contain

java - 如何查找包含特殊字符或空格的url是不是存在于java中

如何使用 String.Contain 函数使用其 ascii 字符来查找字符串是不是有回车?