sql >> Databáze >  >> RDS >> Mysql

MySQL LIKE vs LOCATE

Přidáno 20. dubna 2015:Přečtěte si také Hallieho odpověď níže

První, ale okrajově. Většinou proto, že nemusí dělat navíc > 0 srovnání.

mysql> SELECT BENCHMARK(100000000,LOCATE('foo','foobar'));
+---------------------------------------------+
| BENCHMARK(100000000,LOCATE('foo','foobar')) |
+---------------------------------------------+
|                                           0 |
+---------------------------------------------+
1 row in set (3.24 sec)

mysql> SELECT BENCHMARK(100000000,LOCATE('foo','foobar') > 0);
+-------------------------------------------------+
| BENCHMARK(100000000,LOCATE('foo','foobar') > 0) |
+-------------------------------------------------+
|                                               0 |
+-------------------------------------------------+
1 row in set (4.63 sec)


mysql> SELECT BENCHMARK(100000000,'foobar' LIKE '%foo%');
+--------------------------------------------+
| BENCHMARK(100000000,'foobar' LIKE '%foo%') |
+--------------------------------------------+
|                                          0 |
+--------------------------------------------+
1 row in set (4.28 sec)


mysql> SELECT @@version;
+----------------------+
| @@version            |
+----------------------+
| 5.1.36-community-log |
+----------------------+
1 row in set (0.01 sec)


  1. Funkce TO_TIMESTAMP() v Oracle

  2. Jak vytvořit databázi MySQL v cPanel

  3. Jak automatizovat migraci (schéma a data) pro aplikaci PHP/MySQL

  4. Jak zkontrolovat, zda soubor existuje v PL/SQL?