Outdated Version

You are viewing an older version of this section. View current production version.

RLIKE and REGEXP

RLIKE and REGEXP are synonyms. RLIKE is discussed below. The discussion also applies to REGEXP, as both functions work identically.

RLIKE searches a string for a regular expression pattern. It returns 1 if the pattern is found and returns 0 otherwise.

RLIKE supports the extended and advanced regular expression formats. You can set the global variable regexp_format to specify which format you want to use.

Syntax

source_string RLIKE pattern
source_string REGEXP pattern

source_string

A string expression, such as a column name, to be searched.

pattern

A string literal representing a regular expression.

Examples

The following examples demonstrate how RLIKE works when the global variable regexp_format is set to 'extended'.

Call to RLIKE Result
SELECT 'adog' RLIKE 'o'; 1
SELECT 'adog' RLIKE '.o'; 1
SELECT 'dog58' RLIKE '[:digit:]'; 1
SELECT '1dogbat' RLIKE '[:alpha:]'; 1
SELECT 'rat' RLIKE 'b|c'; 0
SELECT 'cat5mouse' RLIKE 'cat$'; 0
SELECT 'dogcat2' RLIKE '^dog'; 1

The following examples demonstrate how RLIKE works when the global variable regexp_format is set to 'advanced'.

Call to RLIKE Result
SELECT 'dog' RLIKE '\\D'; 1
SELECT 'dog' RLIKE '\\d'; 0
SELECT '26dog' RLIKE '\\W'; 0
SELECT '26dog' RLIKE '\\w'; 1
SELECT 'cat dog' RLIKE '\\mdog'; 1

Using RLIKE With a Table

The following example shows how to call RLIKE once per table row. This example uses extended regular expression matching. Advanced regular expression matching could be used as well.

SET GLOBAL regexp_format = 'extended';

DROP DATABASE IF EXISTS memsql_docs_example;
CREATE DATABASE memsql_docs_example;
USE memsql_docs_example;
CREATE TABLE example_table(id INT, text_field TEXT);

INSERT INTO example_table VALUES (1, 'the'), (2, 'athe'), (3, 'abthe'),
(4, 'abcthe'), (5, 'thethe');

SELECT id, text_field, text_field RLIKE '..the' FROM example_table
ORDER BY id;

Output

+------+------------+--------------------------+
| id   | text_field | text_field RLIKE '..the' |
+------+------------+--------------------------+
|    1 | the        |                        0 |
|    2 | athe       |                        0 |
|    3 | abthe      |                        1 |
|    4 | abcthe     |                        1 |
|    5 | thethe     |                        1 |
+------+------------+--------------------------+