Search code examples
phpmysqlmysqlisql-like

LIKE 'string' and LIKE '%string%' in mysql not working as same


I have confusion in the above title.

SELECT * FROM `parties` WHERE `party_name` LIKE '%DMK%' ORDER BY `id` ASC

Here I am getting 4 rows from DB, all row's party_name contains 'DMK' inside.

SELECT * FROM `parties` WHERE `party_name` LIKE 'DMK' ORDER BY `id` ASC

Here I am getting exact one row which contains party_name as 'DMK'

The first query is searching the part of strings. the second query is searching the exact string

IS it ??

or both are same?

Sorry for this type of question , Thanx


Solution

  • If you use LIKE without % wild card is the same behavoiur of equals (=).

    So if you write:

     SELECT * FROM parties WHERE party_name LIKE 'DMK' ORDER BY id ASC
    

    Is the same of:

    SELECT * FROM parties WHERE party_name = 'DMK' ORDER BY id ASC
    

    If you write:

    SELECT * FROM `parties` WHERE `party_name` LIKE '%DMK%' ORDER BY `id` ASC
    

    You'll find all party_name who cointains DMK

    If you write:

    SELECT * FROM `parties` WHERE `party_name` LIKE '%DMK' ORDER BY `id` ASC
    

    You'll find all party_name ends with DMK

    If you write:

    SELECT * FROM `parties` WHERE `party_name` LIKE 'DMK%' ORDER BY `id` ASC
    

    You'll find all party_name starts with DMK