MySQL | REGEXP_LIKE method
Start your free 7-days trial now!
MySQL's REGEXP_LIKE(~)
method returns 1 if the input string matches the regular expression pat
. If there is no match 0 is returned.
Parameters
1. expr
| string
The string to check for matches with regular expression pattern.
2. pat
| regular expression
The regular expression pattern for matching.
3. match_type
| string
| optional
Specifies how to perform matching. Multiple match types may be specified, however, if there is a contradiction between the provided match types the match type on the right take precedence.
match_type | Meaning |
---|---|
| Case sensitive matching |
| Case-insensitive matching |
| Multiple-line mode. Recognize line terminators within the string. The default behavior is to match line terminators only at the start and end of the string expression. |
| The |
| Unix-only line endings. Only the newline character is recognized as a line ending by the |
Examples
Consider the following table about some students:
student_id | fname | lname | day_enrolled | age | username |
---|---|---|---|---|---|
1 | Sky | Towner | 2015-12-03 | 17 | stowner1 |
2 | Ben | Davis | 2016-04-20 | 19 | bdavis2 |
3 | Travis | Apple | 2018-08-14 | 18 | tapple3 |
4 | Arthur | David | 2016-04-01 | 16 | adavid4 |
5 | Benjamin | Town | 2014-01-01 | 17 | btown5 |
The above sample table can be created using the code here.
Return value
The return value depends on the following cases:
Case | Return value |
---|---|
Input string matches the regular expression pattern | 1 |
Input string does NOT match the regular expression pattern | 0 |
Basic usage
To check whether student last names match the regular expression pattern '[ae]'
:
SELECT lname, REGEXP_LIKE(lname,'[ae]')FROM students;
+--------+---------------------------+| lname | REGEXP_LIKE(lname,'[ae]') |+--------+---------------------------+| Towner | 1 || Davis | 1 || Apple | 1 || David | 1 || Town | 0 |+--------+---------------------------+
Only 'Town'
returns 0 as it does not contain an 'a'
or an 'e'
.
Match type parameter
To perform a case sensitive match by specifying match type 'c'
:
SELECT REGEXP_LIKE('ABC DEF GHI', '[a-z]+', 'c');
+-------------------------------------------+| REGEXP_LIKE('ABC DEF GHI', '[a-z]+', 'c') |+-------------------------------------------+| 0 |+-------------------------------------------+
The uppercase string 'ABC DEF GHI'
does not match the regular expression '[a-z]+'
as the match is case sensitive.