Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 我需要搜索作者,他们书中的标题中有“计算机”一词,但不能有复数“计算机”_Sql_String_Where Clause_Sql Like - Fatal编程技术网

Sql 我需要搜索作者,他们书中的标题中有“计算机”一词,但不能有复数“计算机”

Sql 我需要搜索作者,他们书中的标题中有“计算机”一词,但不能有复数“计算机”,sql,string,where-clause,sql-like,Sql,String,Where Clause,Sql Like,我尝试使用like运算符,但它显示单数和复数,我可以在where子句中添加什么,使其仅显示单数 SELECT (AU_FNAME +' ' +AU_LNAME)AS AUTOR, TITLE FROM AUTHORS INNER JOIN TITLEAUTHOR ON AUTHORS.AU_ID=TITLEAUTHOR.AU_ID INNER JOIN TITLES ON TITLEAUTHOR.TITLE_ID= TITLES.TITLE_ID WHERE TITLE LIKE ('%COM

我尝试使用like运算符,但它显示单数和复数,我可以在where子句中添加什么,使其仅显示单数

SELECT (AU_FNAME +' ' +AU_LNAME)AS AUTOR, TITLE
FROM AUTHORS
INNER JOIN TITLEAUTHOR ON AUTHORS.AU_ID=TITLEAUTHOR.AU_ID
INNER JOIN TITLES ON TITLEAUTHOR.TITLE_ID= TITLES.TITLE_ID
WHERE  TITLE LIKE ('%COMPUTER%')
这将是:

WHERE TITLE LIKE '%COMPUTER%' AND TITLE NOT LIKE '%COMPUTERS%'

语法建议使用SQL Server。你可以做:

但这将错过最后的计算机。解决这个问题的一个办法是:

WHERE TITLE + ' ' LIKE '%COMPUTER[^S]%'

这将确保有一个额外的字符用于比较。

这是SQL Server吗?标题与“%COMPUTERS%”不一样,或者如果SQL Server:WHERE TITLE与“%COMPUTERS[^S]”相似@LukaszSzozda这是在SQL Server中排除“的”的一个很好的提示-不知道您可以这样做。@AlexisPerez。如果字符串同时包含COMPUTER和COMPUTERS,那么您想要什么呢。
WHERE TITLE + ' ' LIKE '%COMPUTER[^S]%'