Detailed explanation of the use of MySQL comparison operator regular expression matching REGEXP

Detailed explanation of the use of MySQL comparison operator regular expression matching REGEXP

1. Initialize data

DROP TABLE IF EXISTS `test_01`;
CREATE TABLE `test_01` (
 `id` int(0) NOT NULL,
 `stu` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 'Student number',
 `user` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 'User',
 `km` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 'Subject',
 `fs` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 'Score',
 `time` datetime(0) NULL DEFAULT NULL COMMENT 'time',
 PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;

INSERT INTO `test_01` VALUES (1, 'X0219001', '小三', '语文', '98', '2020-08-06 15:51:21');
INSERT INTO `test_01` VALUES (2, 'X0219001', '小三', '数学', '90', '2020-07-01 15:51:25');
INSERT INTO `test_01` VALUES (3, 'x0219001', '小三', '英语', '77', '2020-06-01 15:51:28');
INSERT INTO `test_01` VALUES (4, 'X0219002', '小二', '语文', '98', '2020-08-06 15:51:21');

1. Basic character matching

Matches student numbers that contain 'X' in the field. Case insensitive

SELECT * FROM test_01 WHERE stu REGEXP 'X';

insert image description here

2. '.' means matching any character

If you need to match multiple characters, add more dots.

SELECT * FROM test_01 WHERE stu REGEXP '.9001';
SELECT * FROM test_01 WHERE stu REGEXP '.02..0';

insert image description here

3. '|' means to search for one of the two strings

SELECT * FROM test_01 WHERE user REGEXP '二|四';

insert image description here

4. '[ ]' matches any single character

SELECT * FROM test_01 WHERE stu REGEXP '0[23]';

Here [23] is equivalent to [2|3], and one [] matches one character.

insert image description here

Matching range
[0123456789] or [0-9] will match the digits 0 to 9
[az] matches any alphabetic character

5. Matching special characters

1.\ escape character

That is, escaping: all characters that have special meaning within a regular expression must be escaped in this way.

Metacharacters illustrate
\\- Indicates search-
\\. Indicates search.

2.\ is also used to quote metacharacters

Metacharacters illustrate
\f Page Break
\n Line Break
\r Enter
\t tabulation
\v Vertical tabulation

3. Match multiple instances

Metacharacters illustrate
* 0 or more matches
+ 1 or more matches (equal to {1, })
? 0 or 1 matches (equal to {0, 1})
{n} Specified number of matches
{n, } At least the specified number of matches
{n,m} The range of matching numbers (m does not exceed 255)

4. Matching Character Classes

Code explain
[:a;num:] Any letters and numbers (same as [a-zA-Z0-9])
[:alpha:] Any character (same as [a-zA-Z])
[:blank:] Spaces and tabs (same as [\t])
[:cntrl:] ASCII control characters (ASCII 0 to 31 and 127)
[:digit:] Any number (same as [0-9])
[:graph:] Same as ["print:], but without spaces
[:lower:] Any lowercase line (same as [az])
[:print:] Any printable character
[:punct:] Any character that is not in either [:alnum:] or [:cntrl:]
[space:] Any whitespace character including spaces (same as [\f\n\t\r\v])
[:upper:] Any size letter (same as [AZ])
[:xdigit:] Any hexadecimal number (same as [a-fA-F0-9])

This is the end of this article about the detailed usage of the MySQL comparison operator regular expression matching REGEXP. For more relevant MySQL regular expression matching REGEXP content, please search for previous articles on 123WORDPRESS.COM or continue to browse the following related articles. I hope everyone will support 123WORDPRESS.COM in the future!

You may also be interested in:
  • MYSQL Operator Summary
  • Introduction to MySQL <> and <=> operators
  • Summary of the use of special operators in MySql
  • Summary of commonly used operators and functions in MySQL
  • MySQL Notes — SQL Operators

<<:  Detailed explanation of how Nginx works

>>:  A brief discussion on the implementation principle of Webpack4 plugins

Recommend

MySQL FAQ series: How to avoid a sudden increase in the size of the ibdata1 file

0. Introduction What is the ibdata1 file? ibdata1...

Solution to the problem of adaptive height and width of css display table

Definition and Usage The display property specifi...

Analysis of Docker's method for creating local images

The so-called container actually creates a readab...

Methods and steps for deploying multiple war packages in Tomcat

1 Background JDK1.8-u181 and Tomcat8.5.53 were in...

Ubuntu opens port 22

Scenario You need to use the xshell tool to conne...

How to obtain and use time in Linux system

There are two types of Linux system time. (1) Cal...

MySQL slow log online problems and optimization solutions

MySQL slow log is a type of information that MySQ...

How to install redis in Docke

1. Search for redis image docker search redis 2. ...

How to set up a deployment project under Linux system

1. Modify the firewall settings and open the corr...

MySQL Failover Notes: Application-Aware Design Detailed Explanation

1. Introduction As we all know, in the applicatio...

Linux super detailed gcc upgrade process

Table of contents Preface 1. Current gcc version ...

How to dynamically modify container port mapping in Docker

Preface: Docker port mapping is often done by map...