【发布时间】:2013-01-01 04:17:48
【问题描述】:
我有这个问题:
SELECT *
FROM
(SELECT ' ' + REPLACE(Title,' ',' ') + ' ' AS Title
FROM MyTable) t
WHERE Title LIKE '% Samsung %'
AND Title LIKE '% Galaxy %'
AND Title LIKE '% Axiom %'
AND REPLACE(REPLACE(REPLACE(Title,' Samsung ',''),' Galaxy ',''), ' Axiom ','') = ''
此查询应在 MyTable 字段 Title 中搜索并显示包含 LIKE 中指定的单词的所有行。
我没有收到任何错误,但字段标题包含一行带有以下字符串“Samsung Galaxy Axiom R830”,我的查询没有返回它(它应该返回)。
这是我最初的问题,它适用于一些记录,但不适用于所有 SQL SELECT LIKE containing only specific words
【问题讨论】:
-
这不匹配,因为您要的是 `Samsung`。
-
您的最终条件不是说字符串只能包含 Samsung、Galaxy 和 Axiom 吗?你给的字符串会剩下'R830'。
-
在 WHERE - SQL 基础中必须使用 OR 而不是 AND。
-
@Art - 这不是这里的实际问题。如果他想确保一行中的给定列包含所有这些单词,他将需要
AND。他真正的问题是一些比较字符串被激怒了。