Use '=' or LIKE to compare strings in SQL?
There's the (almost religious) discussion, if you should use LIKE or '=' to compare strings in SQL statements.
- Are there reasons to use LIKE?
- Are there reasons to use '='?
- Performance? Readability?
Solution 1:
LIKE
and the equality operator have different purposes, they don't do the same thing:=
is much faster, whereas LIKE
can interpret wildcards. Use =
wherever you can and LIKE
wherever you must.
SELECT * FROM user WHERE login LIKE 'Test%';
Sample matches:
TestUser1
TestUser2
TestU
Test
Solution 2:
To see the performance difference, try this:
SELECT count(*)
FROM master..sysobjects as A
JOIN tempdb..sysobjects as B
on A.name = B.name
SELECT count(*)
FROM master..sysobjects as A
JOIN tempdb..sysobjects as B
on A.name LIKE B.name
Comparing strings with '=' is much faster.