1、在匹配內容上的區別
LIKE要求整個資料都要匹配,用Like,必須這個字段的所有內容滿足條件;
REGEXP只需要部分配對即可,只需要有任何一個片段滿足即可。
2、在匹配位置上的區別
LIKE 匹配整個列,如果被匹配的文字在列值中出現,LIKE 將不會找到它,相應的行也不會被返回(除非使用通配符);
REGEXP 在列值內進行匹配,如果被匹配的文字在列值中出現,REGEXP 將會找到它,相應的行將被傳回,且REGEXP 能匹配整個列值(與LIKE 相同的作用)。
3、SQL語句傳回資料差異
LIKE符合 :此SQL語句將不會傳回資料;
REGEXP符合 :此SQL語句會傳回一行資料;
4、速度差異
有一表,資料有10萬多條,其中某列資料範例如下:
100000-200000-300001 100000-200000-300002 100000-200001-300003 100000-200001-300004 100000-200002-300005 当查询数据中含有 200001 时, 用LIKE 时sql:colName LIKE'%200001 %' ,用时4秒左右 用正则时sql:colName REGEXP '^.*200001 -.*$',用时2秒左右
以上是MySQL的REGEXP和LIKE有什麼差別的詳細內容。更多資訊請關注PHP中文網其他相關文章!