В моем приложении я реализую поиск, это похоже на то, что когда пользователь вводит текст, разделенный запятой в текстовое поле, будет отображаться результат поиска. Это мое требование, и для этого я пишу процедуру для этого, как это .......процедура в sql-сервере (проблема возникает)?
create procedure [dbo].[videos_getSearch](@searchstring AS VARCHAR(1000))
AS
BEGIN
DECLARE @CurNumber INT, @CommaIndex INT, @strSearch varchar(3000),@str varchar(50)
declare @strQuery varchar(1000),@result varchar(5000)
declare @sql varchar(2000)
DECLARE @CurNumStr VARCHAR(20)
set @strSearch = ''
WHILE LEN(@searchstring) > 0
BEGIN
SET @CommaIndex = CHARINDEX(',', @searchstring)
IF @CommaIndex = 0 SET @CommaIndex = LEN(@searchstring)+1
SET @CurNumStr = SUBSTRING(@searchstring, 1, @CommaIndex-1)
SET @searchstring = SUBSTRING(@searchstring, @CommaIndex+1, LEN(@searchstring))
BEGIN
set @str = ltrim(rtrim(@CurNumStr))
if LEN(@searchstring)> 0
begin
set @strSearch = @strSearch + '''%' + @str +'%'''+'or tags like'
end
else
begin
set @strSearch = @strSearch + '''%'+ @str +'%'''
end
END
END
set @sql='SELECT phot_album.albumid,phot_album.tags,phot_album.albumtitle,phot_album.coverphoto,trailor_creation.trailorid,trailor_creation.tags,trailor_creation.movie,trailor_creation.images,video_upload.videoid,video_upload.videotitle,video_upload.videofile,video_upload.tags FROM phot_album INNER JOIN trailor_creation ON phot_album.tags = trailor_creation.tags INNER JOIN video_upload ON phot_album.tags = video_upload.tags where (phot_album.tags) like '[email protected] +' or (trailor_creation.tags) like '[email protected] +' or (video_upload.tags) like '[email protected]
execute (@sql)
END
, когда я запустить эту процедуру он дает ошибку, как ambigious «теги» в этой процедуре я являюсь объединение трех таблиц. может помочь мне
Неоднозначное название столбца «теги». Msg 209, уровень 16, состояние 1, строка 1 Незначительное название столбца «теги». Msg 209, уровень 16, состояние 1, строка 1 Незначительное название столбца «теги».
Будьте осторожны, эта функция открыта для атаки SQL. – DanDan
Я вижу, что вы отметили мой ответ как принято. Просто чтобы вы знали, что это не гарантирует награду автоматически, если вы этого не знали! –