SQL LIKE with no wildcards the same as '='?
Solution 1:
As @ocdecio says, if the optimizer is smart enough there should be no difference, but if you want to make sure about what is happening behind the scenes you should compare the two query's execution plans.
Solution 2:
Original Answer by Matt Whitfield from here
There is a difference between =
and LIKE
. When you perform string comparisons by using LIKE
, all characters in the pattern string are significant. This includes leading or trailing spaces.
So if you have a column that is char
or nchar
and not nvarchar
or varchar
, there will be different results due to trailing spaces.
Small example to reproduce this behaviour:
CREATE TABLE #temp (nam [varchar](MAX))
INSERT INTO [#temp] ([nam])
VALUES ('hello')
INSERT INTO [#temp] ([nam])
VALUES ('hello ')
SELECT * FROM #temp WHERE [nam] = 'hello '
SELECT * FROM #temp WHERE [nam] LIKE 'hello '