MySQL | REGEXP VS Like

前端 未结 4 1701
甜味超标
甜味超标 2020-12-10 10:34

I have a table CANDIDATE in my db which is running under MySQL 5.5 and I am trying to get rows from table where RAM is contains in firstname, so I can run below two queries,

相关标签:
4条回答
  • 2020-12-10 10:48

    REGEXP and LIKE are used to totally different cases.

    LIKE is used to add wildcards to a string whereas REGEXP is used to match an attribute with Regular Expressions.

    In your case a firstname is more likely to be matched using LIKE than REGEXP and hence, it will be more optimized.

    0 讨论(0)
  • 2020-12-10 10:59

    If you can use LIKE instead of REGEXP, use LIKE

    0 讨论(0)
  • 2020-12-10 11:00

    Better Use of LIKE Query instead of REGEXP if you are not sure about value.

    Also LIKE is much faster than REGEXP.

    0 讨论(0)
  • 2020-12-10 11:07

    I've tried it out on MySQL 8.0.13 and compared LIKE vs REGEXP on a table with 1M+ rows on a column with an index:

    SELECT * FROM table WHERE column LIKE '%foobar%';
    

    Query took 10.0418 seconds.

    SELECT * FROM table WHERE REGEXP_LIKE(column, 'foobar');
    

    Query took 11.0742 seconds.

    LIKE performance is faster. If you can get away with using it instead of REGEXP, do it.

    0 讨论(0)
提交回复
热议问题