Sql 使用字符串搜索表
我有一个存储过程,它在表中搜索用户设置的变量。它工作正常,但搜索只找到字符串输入的第一个字母 我正在使用->Sql 使用字符串搜索表,sql,sql-server,stored-procedures,Sql,Sql Server,Stored Procedures,我有一个存储过程,它在表中搜索用户设置的变量。它工作正常,但搜索只找到字符串输入的第一个字母 我正在使用-> ALTER PROCEDURE [dbo].[test] @search_string varchar AS BEGIN SET NOCOUNT ON; IF (@search_string IS NOT NULL) OR (LEN(@search_string) > 0) SELECT [archive_id]
ALTER PROCEDURE [dbo].[test]
@search_string varchar
AS
BEGIN
SET NOCOUNT ON;
IF (@search_string IS NOT NULL) OR (LEN(@search_string) > 0)
SELECT [archive_id]
[archive_id],
[display_name]
FROM [test1].[dbo].[ARCHIVE_id]
WHERE [display_name] like @search_string+'%';
我想弄明白的是如何在display_name列中搜索整个单词
任何帮助都将不胜感激
标记您必须声明变量的大小
ALTER PROCEDURE [dbo].[test]
@search_string varchar(50)
这应该会起作用您必须声明变量的大小
ALTER PROCEDURE [dbo].[test]
@search_string varchar(50)
这应该有效请参见
看
像“%”++@search\u string++“%”一样,我尝试过,但没有找到任何内容。您需要指定@search\u string的大小:
@search\u string varchar(80)
。默认大小为1。如“%”++@search\u string++“%”我尝试过,但没有找到任何内容。您需要指定@search\u string的大小:@search\u string varchar(80)
。默认大小为1。问题是,如果在搜索子句中找到所有类型的结果(如nm_mpeg),而不仅仅是包含单词nexUse通配符的结果,我会搜索“nex”。应该是“%”++@variable++'%'如果我删除通配符,则不会得到任何结果*如上所述更新通配符谁否决了此操作?这是正确的答案。如果不指定默认大小,则只需一个字符。问题是,如果在搜索子句中找到所有类型的结果(如nm_mpeg),而不仅仅是包含单词nexUse通配符的结果,则我会搜索“nex”。应该是“%”++@variable++'%'如果我删除通配符,则不会得到任何结果*如上所述更新通配符谁否决了此操作?这是正确的答案。如果未指定默认大小,则此处仅使用一个字符