我正在使用sql实现搜索,这是查询

Select CM.ID, ProductName,ImageURL,SKU,AA.Name as
MemberName,Price,Discount,DM.Name as CategoryName from tblMasterProduct CM
INNER JOIN tblProducts OM ON CM.ID=OM.MasterProductID
INNER JOIN tblMasterCategory DM ON CM.SubCategoryID=DM.ID
INNER JOIN tblOnlineRetailMember AA ON OM.MemberID=AA.ID
WHERE 1=1  AND  CM.ProductName LIKE '% watches %'  AND CM.SubCategoryID= 112
AND (OM.Price - OM.Discount) BETWEEN 0 And 200000


问题是查询返回包含单词watch的结果,而我也想获取所有包含单词Watch的条目。

编辑:很抱歉,信息不完整,查询是在存储过程中编写的,并且字符串是由用户输入的,无法从用户那里获得“监视”。

最佳答案

尝试在MSSQL中使用SOUNDEXDIFFERENCE函数。如果ProductName是一个多词,则可以使用PARSENAME拆分为多个词,然后使用DIFFERENCE在字符串中找到一个相似的词:

select * from t WHERE DIFFERENCE(ProductName,'watches')>=3


SQLfiddle demo

关于sql - SQL Like查询以获得与参数最接近的匹配,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32732405/

10-11 21:40