Are there any differences in the results of these two queries other than performance?
SELECT * FROM pet WHERE name LIKE \'Spot\';
SELECT * FROM pet WHERE nam
In practice, LIKE with no wildcards is functionally equivalent to =. However, they are not the same! The obvious difference is that = doesn't treat \, %, and _ in any special way, but LIKE does.
The documentation is pretty clear on this:
Per the SQL standard,
LIKEperforms matching on a per-character basis, thus it can produce results different from the = comparison operator:
In addition to collation differences, trailing spaces matter:
In particular, trailing spaces are significant, which is not true for
CHARorVARCHARcomparisons performed with the = operator:
In practice, the strings being compared usually have the same collation, don't have trailing spaces, and special characters are ignored, so LIKE is sometimes used as a replacement for = (especially because LIKE without wildcards at the beginning of the pattern can also make use of an index).
Effectively, it turns out to be the same thing in your example, but here is more info:
From another stackoverflow answer
= is a comparison operator that operates on numbers and strings. When comparing strings, the comparison operator compares whole strings.
LIKE is a string operator that compares character by character.