SQL 检查文本是否包含单词
SQL Check if a text contains a word
我有一条短信,
'Me and you against the world' // false
'Can i have an email address' // true
'This is an' // true
'an' //true
我想检查 an
这个词是否在我的字符串中。
如何检查文本是否包含 SQL 中的特定字词?我无法添加全文目录。否则我可以
SELECT * FROM TABLE WHERE CONTAINS(Text, 'an')
有一些方法可以做到这一点,看来你想要找到一个词而不是一个词的一部分,所以你可以使用 like operator
轻松完成
你可以有3个案例来找到一个词
- 'space'字数
- WORD'space'
- 'space'WORD'space'
SELECT * FROM TABLE WHERE Field like ' an' OR Field like 'an ' OR
Field like ' an '
希望对您有所帮助
它在 MS SQL 服务器中通过 CHARINDEX 函数完美完成(它是 MS SQL 的内部功能):
if CHARINDEX('an ',@mainString) > 0
begin
--do something
end
解决方案之前在another post中显示过。
这是一种方法。
DECLARE @table_name table (
column_name varchar(50)
);
INSERT INTO @table_name (column_name)
VALUES ('Me and you against the world')
, ('Can i have an email address')
, ('This is an')
;
SELECT column_name
FROM @table_name
WHERE ' ' + column_name + ' ' LIKE '% an %'
;
Luka提到的三种情况:
- Space 字前
- Space 字后
- Space字前后
为此,您将编写如下查询来搜索整个单词,并用前导和尾随 space 填充要搜索的表达式以捕获 [=24= 处的单词] 的表达式:
Note: I've used a contrived example to make this portable and demonstrable.
select
t.txt
from (
select
'this is an awesome test of awesomeness man' as txt
) t
where
charindex(' an ', ' ' + t.txt + ' ') > 0;
我有一条短信,
'Me and you against the world' // false
'Can i have an email address' // true
'This is an' // true
'an' //true
我想检查 an
这个词是否在我的字符串中。
如何检查文本是否包含 SQL 中的特定字词?我无法添加全文目录。否则我可以
SELECT * FROM TABLE WHERE CONTAINS(Text, 'an')
有一些方法可以做到这一点,看来你想要找到一个词而不是一个词的一部分,所以你可以使用 like operator
你可以有3个案例来找到一个词
- 'space'字数
- WORD'space'
- 'space'WORD'space'
SELECT * FROM TABLE WHERE Field like ' an' OR Field like 'an ' OR Field like ' an '
希望对您有所帮助
它在 MS SQL 服务器中通过 CHARINDEX 函数完美完成(它是 MS SQL 的内部功能):
if CHARINDEX('an ',@mainString) > 0
begin
--do something
end
解决方案之前在another post中显示过。
这是一种方法。
DECLARE @table_name table (
column_name varchar(50)
);
INSERT INTO @table_name (column_name)
VALUES ('Me and you against the world')
, ('Can i have an email address')
, ('This is an')
;
SELECT column_name
FROM @table_name
WHERE ' ' + column_name + ' ' LIKE '% an %'
;
Luka提到的三种情况:
- Space 字前
- Space 字后
- Space字前后
为此,您将编写如下查询来搜索整个单词,并用前导和尾随 space 填充要搜索的表达式以捕获 [=24= 处的单词] 的表达式:
Note: I've used a contrived example to make this portable and demonstrable.
select
t.txt
from (
select
'this is an awesome test of awesomeness man' as txt
) t
where
charindex(' an ', ' ' + t.txt + ' ') > 0;