Is there any difference between:
SELECT * FROM users WHERE username=\"davyjones\"
and
SELECT * FROM users WHERE username LI
LIKE supports wildcards. Usually it uses the % or _ character for the wildcard.
Using the LIKE operator with no wildcards is the same as using the = operator.
As far as I know, there is no difference but a time cost to the two selects you wrote. Usually one uses LIKE together with %, meaning 'any string'. I think there's also a character that can be used with LIKE for 'any character', not sure what that is without googling.
But as your two selects go, the only difference I see is a different run time, since LIKE is used in a regexp-sort-of-fashion.
Like gets you to work with wild card operators, you may use it in your case for like 'davyjon%' to get all the results starting with davyjon, and to get the exact you may place 'davyjones' and you may also use = in this case
As per SQL standard, the difference is treatment of trailing whitespace in CHAR columns. Example:
create table t1 ( c10 char(10) );
insert into t1 values ('davyjones');
select * from t1 where c10 = 'davyjones';
-- yields 1 row
select * from t1 where c10 like 'davyjones';
-- yields 0 rows
Of course, assuming you run this on a standard-compliant DBMS. BTW, this is one the main differences between CHARs and VARCHARs.
LIKE allows partial matching / use of wildcards, while = checks for exact matches.
For example
SELECT * FROM test WHERE field LIKE '%oom';
Will return rows where field value is any of the following:
Zoom, Boom, Loom, Groom
The LIKE condition allows you to use wildcards:
SELECT * FROM suppliers
WHERE supplier_name like 'Hew%';
See more examples.
and Equals = is used for equality matching.