SQL 使用 LIKE 的过程

SQL Procedure with LIKE

我想了解更多关于 SQL 中的程序的信息,所以我正在尝试这样做:

CREATE PROCEDURE GetCarInformation
(@ModelName Varchar(256))
AS
Begin
SELECT Car.LicensePlate, CarBrand.ManufacturerName, CarModel.ModelName, CarSpecs.ModelYear, CarSpecs.Doors, CarSpecs.Seats, CarSpecs.ModelYear
FROM Car
INNER JOIN CarModel ON Car.ModelID = CarModel.ID
INNER JOIN CarBrand ON CarModel.ManufacturerID = CarBrand.ID
INNER JOIN CarSpecs ON CarModel.CarSpecsID = CarSpecs.ID
WHERE CarModel.ModelName LIKE '%@ModelName%'
END

但它似乎不起作用,就它的 LIKE 部分而言。 它不会正确搜索。 是因为我使用不当吗? 或者我不能用 @ModelName 添加 % 吗?和单引号 ?

你应该使用

LIKE '%'+@ModelName+'%'

这是 MSSQL 用于 CONCAT 字符串的方式。您也可以使用 CONCAT()。

请记得谨慎使用 LIKE '%xxx%'。它会对性能产生非常糟糕的影响。