如何搜索像'播放器'这样的单词使用类似'%'运算符查询。它适用于'P,'Pl','Pla','播放','播放','Playe,'播放器'..但是不适用于'玩家','播放器'。如果我们添加额外的字符串不起作用 [英] How To Search A Word Like 'Player' I Used Query Using Like'%' Operator.It Works On 'P,'Pl','Pla','Play','Play','Playe,'Player'..But Not Works On 'Players','Playerd'.If We Add A Extra String Not Work

查看:103
本文介绍了如何搜索像'播放器'这样的单词使用类似'%'运算符查询。它适用于'P,'Pl','Pla','播放','播放','Playe,'播放器'..但是不适用于'玩家','播放器'。如果我们添加额外的字符串不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个带有搜索选项的列表视图,其中包含三个字段名称,评论,说明。

我已使用此查询实现了搜索选项。

I have a listview with search options with three fields name,comment,description.
I have implemented the search options using this query.

SELECT OrganizationID,
Name,
DescriptionShort,
DescriptionLong, Comment,
DateUpdated,
FROM t_Organization
where t_Organization.Name like '%'+@name+'%'
or t_Organization.DescriptionShort like '%'+@name+'%'
or t_Organization.DescriptionLong like '%'+@name+'%'
or t_Organization.Comment like '%'+@name+'%'
ORDER BY Name



完美无缺。但是如果我添加一个额外的字符串,那么就没有记录了。



喜欢'玩家'搜索完美

喜欢'玩'搜索完美

喜欢'pla'搜索完美

喜欢'pl'搜索完美

喜欢'p'搜索完美



但'玩家',不工作

喜欢'playerw'不工作



喜欢玩不行。

表示我们添加额外的st它不起作用。



我该怎么做?

我需要全部。

搜索将发生是因为游戏很常见..

请帮帮我....我怎么能这样做?


It works perfectly.but if when I add a extra string then no records are fetching.

like 'player' search perfectly
like 'play' search perfectly
like 'pla' search perfectly
like 'pl' search perfectly
like 'p' search perfectly

but 'Players' , not work
like 'playerw' not work

like 'playing' not work.
means when we add a extra string it does not work .

How can I do this?
I need all.
search will happen because play is common..
please help me....how can i do this?

推荐答案

最后我做到了这一点使用此查询



finally i have done this using this query

ALTER PROC [dbo].[GetDetails](@SearchName VARCHAR(200))
AS
BEGIN
IF ISNULL(@SearchName,'') = ''
    BEGIN
        SELECT * FROM t_Organization
    END
    ELSE
    BEGIN
        DECLARE @Count INT;
        DECLARE @i  INT = 0
 
        WHILE (@i) < LEN(@SearchName)
        BEGIN     
            SELECT @Count = COUNT(*) FROM t_Organization
            WHERE (Name LIKE '%' + SUBSTRING(@SearchName,1,LEN(@SearchName) - @i)  + '%')
            OR (DescriptionShort LIKE '%' + SUBSTRING(@SearchName,1,LEN(@SearchName) - @i)  + '%')
            OR (DescriptionLong LIKE '%' + SUBSTRING(@SearchName,1,LEN(@SearchName)- @i)  + '%')
            OR (Comment LIKE '%' + SUBSTRING(@SearchName,1,LEN(@SearchName) - @i)  + '%') 
            
            IF @Count > 0
            BEGIN
                SELECT * FROM t_Organization
                WHERE (Name LIKE '%' + SUBSTRING(@SearchName,1,LEN(@SearchName) - @i)  + '%')
                OR (DescriptionShort LIKE '%' + SUBSTRING(@SearchName,1,LEN(@SearchName) - @i)  + '%')
                OR (DescriptionLong LIKE '%' + SUBSTRING(@SearchName,1,LEN(@SearchName) - @i)  + '%')
                OR (Comment LIKE '%' + SUBSTRING(@SearchName,1,LEN(@SearchName) - @i)  + '%') 
                order by Name
              
            END
            SET @i = @i + 1
     
        END
    END
    --DROP TABLE t_Organization
END


搜索完整模式使用'%your word%'
To search complete Pattern Use '%your word%'


我认为你的搜索字符串应该用单引号括起来:

I think your search-strings should be enclosed between single quotes:
where t_Organization.Name like '''%'+@name+'%'''
or t_Organization.DescriptionShort like '''%'+@name+'%'''
or t_Organization.DescriptionLong like '''%'+@name+'%'''
or t_Organization.Comment like '''%'+@name+'%'''





希望这会有所帮助。



Hope this helps.


这篇关于如何搜索像'播放器'这样的单词使用类似'%'运算符查询。它适用于'P,'Pl','Pla','播放','播放','Playe,'播放器'..但是不适用于'玩家','播放器'。如果我们添加额外的字符串不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆