SQL匹配精确字
我知道此查询返回所有包含白色的行:SQL匹配精确字,sql,sql-server,Sql,Sql Server,我知道此查询返回所有包含白色的行: SELECT COUNT(*) FROM MyTable WHERE Title like '%white%' 但我想得到像白玫瑰那样的排,而不是像白玫瑰那样的排。如何编辑该查询以仅获取包含白色的单个单词?提前感谢。假设单词之间用空格分隔,您可以执行以下操作: WHERE ' ' + Title + ' ' like '% white %' 或者,您可能需要全文搜索功能。假设单词之间用空格分隔,您可以执行以下操作: WHERE ' ' + Title +
SELECT COUNT(*) FROM MyTable WHERE Title like '%white%'
但我想得到像白玫瑰那样的排,而不是像白玫瑰那样的排。如何编辑该查询以仅获取包含白色的单个单词?提前感谢。假设单词之间用空格分隔,您可以执行以下操作:
WHERE ' ' + Title + ' ' like '% white %'
或者,您可能需要全文搜索功能。假设单词之间用空格分隔,您可以执行以下操作:
WHERE ' ' + Title + ' ' like '% white %'
或者,您可能需要全文搜索功能。通过在两侧查找带有空格字符的word来尝试此功能
SELECT COUNT(*) FROM MyTable WHERE ' ' + Title + ' ' like '% white %'
在标题的两边加空格是为了防止单词出现在字符串的开头或结尾。可以通过在单词的两边加空格来查找
SELECT COUNT(*) FROM MyTable WHERE ' ' + Title + ' ' like '% white %'
在标题的两边加空格是为了防止单词出现在字符串的开头或结尾。我想你要找的是:
SELECT COUNT(*)
FROM MyTable
WHERE Title like '% white %'
OR Title like '% white'
OR Title like 'white %';
我想你要找的是:
SELECT COUNT(*)
FROM MyTable
WHERE Title like '% white %'
OR Title like '% white'
OR Title like 'white %';
其他答案没有考虑标点符号
DECLARE @Table TABLE (
Title NVARCHAR(4000)
)
INSERT INTO @Table (Title) SELECT 'White Christmas was a song.'
INSERT INTO @Table (Title) SELECT 'I''m dreaming of a white Christmas.'
INSERT INTO @Table (Title) SELECT 'The snow was white.'
INSERT INTO @Table (Title) SELECT 'Whitewolves are dangerous.'
INSERT INTO @Table (Title) SELECT 'Snowwhite was a female.'
SELECT *
FROM (
SELECT Title FROM @Table
WHERE Title LIKE '%white%'
) match
WHERE Title NOT LIKE '%white[a-z]%'
AND Title NOT LIKE '%[a-z]white%'
其他答案没有考虑标点符号
DECLARE @Table TABLE (
Title NVARCHAR(4000)
)
INSERT INTO @Table (Title) SELECT 'White Christmas was a song.'
INSERT INTO @Table (Title) SELECT 'I''m dreaming of a white Christmas.'
INSERT INTO @Table (Title) SELECT 'The snow was white.'
INSERT INTO @Table (Title) SELECT 'Whitewolves are dangerous.'
INSERT INTO @Table (Title) SELECT 'Snowwhite was a female.'
SELECT *
FROM (
SELECT Title FROM @Table
WHERE Title LIKE '%white%'
) match
WHERE Title NOT LIKE '%white[a-z]%'
AND Title NOT LIKE '%[a-z]white%'
包括标点符号,正如Ghost指出的:
select title
from t
where ' '+title+' ' like '%[^a-z]white[^a-z]%'
rextester演示:
返回
+------------------+
| title |
+------------------+
| white |
| white house |
| something white. |
+------------------+
包括标点符号,正如Ghost指出的:
select title
from t
where ' '+title+' ' like '%[^a-z]white[^a-z]%'
rextester演示:
返回
+------------------+
| title |
+------------------+
| white |
| white house |
| something white. |
+------------------+