MySQL LIKE & NOT LIKE - Kako Pronaci Podatke u MySQL Tabeli

LIKE se koristi u paketu sa MySQL WHERE kada zelite pronaci neke podatke u tabeli na osnovu necega sto vam je poznato, a sto je deo tog podatka.

U par crta, LIKE koristite kada trazite vrednosti u tabeli:

SELECT kolona
FROM tabela
WHERE kolona LIKE kriterijum;

Na primer, trebaju nam svi podaci za nekoga cije ime pocinje sa "P":

mysql> SELECT * FROM kucni
    -> WHERE ime LIKE 'P%';
+----+---------+-------------+---------+
| id | ime     | prezime     | telefon |
+----+---------+-------------+---------+
|  1 | Petar   | Peric       |  888555 |
|  5 | Predrag | Predragovic |  333888 |
|  6 | Petar   | Petrovic    |  555555 |
+----+---------+-------------+---------+
3 rows in set (0.66 sec)

mysql>

Sada zelimo sva prezimena koja se zavrsavaju na 'ic':

mysql> SELECT * FROM kucni
    -> WHERE prezime LIKE '%ic';
+----+---------+-------------+---------+
| id | ime     | prezime     | telefon |
+----+---------+-------------+---------+
|  1 | Petar   | Peric       |  888555 |
|  2 | Milutin | Miric       |  111222 |
|  3 | Zoran   | Zorisic     |  999555 |
|  4 | Marko   | Markovic    |  787878 |
|  5 | Predrag | Predragovic |  333888 |
|  6 | Petar   | Petrovic    |  555555 |
+----+---------+-------------+---------+
6 rows in set (0.00 sec)

mysql>

Mozda su nam potrebni brojevi telefona koji pocinju na '8' ?

mysql> SELECT * FROM kucni
    -> WHERE telefon LIKE '8%';
+----+-------+---------+---------+
| id | ime   | prezime | telefon |
+----+-------+---------+---------+
|  1 | Petar | Peric   |  888555 |
+----+-------+---------+---------+
1 row in set (0.00 sec)

mysql>

Sta ako znamo neka slova koja se nalaze u SREDINI polja ? Na primer, znamo da u prezimenu imamo 4 slova i to "drag":

mysql> SELECT * FROM kucni
    -> WHERE prezime LIKE '%drag%';
+----+---------+-------------+---------+
| id | ime     | prezime     | telefon |
+----+---------+-------------+---------+
|  5 | Predrag | Predragovic |  333888 |
+----+---------+-------------+---------+
1 row in set (0.02 sec)

mysql>

NOT LIKE u Pretrazi MySQL tabele

Sta ako ZNAMO neki podatak koji ZELIMO da ZAOBIDJEMO u izvestaju ?

Tada cemo koristiti NOT LIKE.

Na primer, zelimo sva imena koja ne pocinju sa 'P':

mysql> SELECT * FROM kucni
    -> WHERE ime NOT LIKE 'P%';
+----+---------+----------+---------+
| id | ime     | prezime  | telefon |
+----+---------+----------+---------+
|  2 | Milutin | Miric    |  111222 |
|  3 | Zoran   | Zorisic  |  999555 |
|  4 | Marko   | Markovic |  787878 |
+----+---------+----------+---------+
3 rows in set (0.05 sec)

mysql>

Isto tako, ne zelimo imena koja se zavrsavaju na 'in':

mysql> SELECT * FROM kucni
    -> WHERE ime NOT LIKE '%in';
+----+---------+-------------+---------+
| id | ime     | prezime     | telefon |
+----+---------+-------------+---------+
|  1 | Petar   | Peric       |  888555 |
|  3 | Zoran   | Zorisic     |  999555 |
|  4 | Marko   | Markovic    |  787878 |
|  5 | Predrag | Predragovic |  333888 |
|  6 | Petar   | Petrovic    |  555555 |
+----+---------+-------------+---------+
5 rows in set (0.01 sec)

mysql>