SQL LIKE 具有不同的通配符模式
SQL LIKE with different wild cards pattern
我有一个获取用户输入的表单。在名称文本框字段中,用户将指定他希望如何实现 WILD Card
。例如,如果他输入 abc
查询应该是:
Select * from Student where Name Like '%' '@Name' + '%'
如果他输入 abc*
,*
应该告诉查询 return 行名称从 abc
开始
Select * from Student where Name Like '@Name' + '%'
如果他输入 *abc
,*
应该告诉查询 return 行的名称以 abc
结尾
Select * from Student where Name Like '%' + '@Name'
如何编写处理此类用户输入的查询? Regex
会有帮助吗?
Declare @sqlText varchar(max)= "Select * from Student where Name Like '" + Replace(userinputtext, "*", "%") + "'";
Exec(@sqlText)
你应该试试下面的方法,
DECLARE @Name AS VARCHAR(100)='*kklik'
IF(CHARINDEX('*', @Name) = 1)
BEGIN
Select * from Student where Name Like '@Name' + '%'
END
ELSE IF(CHARINDEX('*', @Name) >= 1)
BEGIN
Select * from Student where Name Like '@Name' + '%'
END
试试这个
DECLARE @Name AS VARCHAR(100)='abc*'
if (CHARINDEX('*', @Name)>1)
set @Name=Replace(@Name, '*', '%')
else
set @Name='%'+@Name+'%'
Declare @sqlText varchar(max)= "Select * from Student where Name Like '" + Replace(userinputtext, "*", "%") + "'";
Exec(@sqlText)
我有一个获取用户输入的表单。在名称文本框字段中,用户将指定他希望如何实现 WILD Card
。例如,如果他输入 abc
查询应该是:
Select * from Student where Name Like '%' '@Name' + '%'
如果他输入 abc*
,*
应该告诉查询 return 行名称从 abc
Select * from Student where Name Like '@Name' + '%'
如果他输入 *abc
,*
应该告诉查询 return 行的名称以 abc
Select * from Student where Name Like '%' + '@Name'
如何编写处理此类用户输入的查询? Regex
会有帮助吗?
Declare @sqlText varchar(max)= "Select * from Student where Name Like '" + Replace(userinputtext, "*", "%") + "'";
Exec(@sqlText)
你应该试试下面的方法,
DECLARE @Name AS VARCHAR(100)='*kklik'
IF(CHARINDEX('*', @Name) = 1)
BEGIN
Select * from Student where Name Like '@Name' + '%'
END
ELSE IF(CHARINDEX('*', @Name) >= 1)
BEGIN
Select * from Student where Name Like '@Name' + '%'
END
试试这个
DECLARE @Name AS VARCHAR(100)='abc*'
if (CHARINDEX('*', @Name)>1)
set @Name=Replace(@Name, '*', '%')
else
set @Name='%'+@Name+'%'
Declare @sqlText varchar(max)= "Select * from Student where Name Like '" + Replace(userinputtext, "*", "%") + "'";
Exec(@sqlText)