like語句
select `column` from `table` where `condition` like `%keyword%'
事實上,可以使用
locate(position) 和 instr
這兩個函式來代替
一、locate語句
select `column` from `table` where locate(『keyword』, `condition`)>0
二、或是 locate 的別名 position
position語句
select `column` from `table` where position(『keyword』 in `condition`)
三、instr語句
select `column` from `table` where instr(`condition`, 『keyword』 )>0
locate、position 和 instr 的差別只是引數的位置不同,同時locate 多乙個起始位置的引數外,兩者是一樣的。
mysql> select locate(『bar』, 『foobarbar』,5);
-> 7
速度上這三個比用 like 稍快了一點。
~~~~~~~~~~~~~~~~~~~~~~~華麗的分割線~~~~~~~~~~~~~~~~~~~~~~~~~~~~
四、還要給大家介紹乙個新成員,那就是find_in_set
find_in_set(str1,str2) 函式:返回str2中str1所在的位置索引,其中str2必須以","分割開。 表: mysql> select * from region; +----+-------------+ | id | name | +----+-------------+ | 1 | name1,nam2 | | 2 | name1 | | 3 | name3| | 4 | name2,name4 | | 5 | name3,name5 | +----+-------------+ 5 rows in set (0.00 sec) find_in_set語句 mysql> select * from test where find_in_set('name1',name);
+----+------------+ | id | name
| +----+------------+ | 1 | name1,nam2 | | 2 | name1
| +----+------------+ 2 rows in set (0.02 sec) 五、當然,還有mysql的全文索引 全文索引:
Mysql模糊查詢like效率,以及更高效的寫法
在使用msyql進行模糊查詢的時候,很自然的會用到like語句,通常情況下,在資料量小的時候,不容易看出查詢的效率,但在資料量達到百萬級,千萬級的時候,查詢的效率就很容易顯現出來。這個時候查詢的效率就顯得很重要!一般情況下like模糊查詢的寫法為 field已建立索引 selectcolumnfro...
Mysql模糊查詢like效率,以及更高效的寫法
在使用msyql進行模糊查詢的時候,很自然的會用到like語句,通常情況下,在資料量小的時候,不容易看出查詢的效率,但在資料量達到百萬級,千萬級的時候,查詢的效率就很容易顯現出來。這個時候查詢的效率就顯得很重要!一般情況下like模糊查詢的寫法為 field已建立索引 select column f...
Mysql模糊查詢like效率,以及更高效的寫法
在使用msyql進行模糊查詢的時候,很自然的會用到like語句,通常情況下,在資料量小的時候,不容易看出查詢的效率,但在資料量達到百萬級,千萬級的時候,查詢的效率就很容易顯現出來。這個時候查詢的效率就顯得很重要!一般情況下like模糊查詢的寫法為 field已建立索引 select column f...