Обновленный ответ
Так что, похоже, @mfr_id - это varchar.Чтобы избежать синтаксической проблемы, используйте ответ в посте OMG Ponies.
Но вы также говорите, что он хранит строку «1 2, 3, 4 .....».Итак, семантически вы хотите, чтобы оператор IF был истинным, если он содержит значение «5»?
Если это так, то вам может понадобиться что-то вроде этого
set @mfr_id = REPLACE(@mfr_id, ' ','')
if ((@mfr_id LIKE '5,%') OR (@mfr_id LIKE '%,5,%') OR (@mfr_id LIKE '%,5'))
Оригинальный ответ - устарел
if(CONVERT(int, @mfr_id) = 5)
, надо надеяться.Подробнее см. http://msdn.microsoft.com/en-us/library/ms187928.aspx.Хотя на самом деле я думаю, что это должно быть неявно преобразовано.Каково значение @mfr_id?Это должно сказать вам это в сообщении об ошибке, я думаю.