有谁知道哪一个更快:
SELECT * FROM table WHERE column LIKE '%text%';
Run Code Online (Sandbox Code Playgroud)
要么
SELECT * FROM table WHERE LOCATE('text',column)>0;
Run Code Online (Sandbox Code Playgroud)
Mch*_*chl 21
2015年4月20日新增:请阅读下面的Hallie答案
第一个但很少.主要是因为它不需要做额外的> 0比较.
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)
Run Code Online (Sandbox Code Playgroud)