有一表,数据有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秒左右
用IN时sql:SUBSTRING_INDEX(SUBSTRING_INDEX(C6, '-', -2),"-",1) IN ( 107003 ),用时400ms左右
比较了一下,有时in速度还是不错的!
以上示例仅供参考,若有不对,还请指教!