当前位置:网站首页>Regular expressions in MySQL
Regular expressions in MySQL
2022-07-02 07:28:00 【Snow wind in the night sky】
Preface
Sometimes use MySQL When querying data in the database ,like Query has limitations , It can be used at this time MySQL The way of regular expression query in .
Regular expressions are special strings used to match text ( Character set ), Put a pattern ( Regular expressions ) Compare with a text string .
- Extract phone numbers from text files
- Find a file with a number in the middle of its name
- Repeated words in the text block
- Replace page URL For these URL Actual link to ( One or two regular expressions )
LIKE and REGEXP The difference between
LIKE Match the entire column (like It's fuzzy query ), If the matched text appears only in the column value ,LIKE Will not find it , The corresponding line will not return ( Of course , Use wildcards except )
REGEXP Match within column values , If the matched text appears in the column value ,REGEXP It will be found , The corresponding line is returned , At this time, a very important difference ( Of course , If you adapt to positioning symbols ^ and $, Can achieve REGEXP Match the entire column instead of a subset of the column )
for example :
Query a table name The column contains chen String data , Two article sql The statement is as follows
select * from stu_info where name like ' The small white ';
select * from stu_info where name regexp ' The small white ';
The first query result is name The value is equal to ’ The small white ‘ The data of , The second query result is name Contained in the ’ The small white ’ The data of , It can also be used. like( Fuzzy query + wildcard ) To achieve regexp Query results .
OR Match
select column from table where column regexp 'X|Y' order by column;
select column from table where column regexp '[XY]test' order by column;
The first way of writing will be | Apply to the whole string , As long as there is X or Y The data of , Will be retrieved
The second way of writing only [XY] Apply to the beginning of the search pattern
Match range
([]) A set can be used to define one or more characters to match , such as [0123456789], To simplify this type of collection , You can use (-) To define a range , namely [0-9],[a-z]
Match special character
Then the expression is composed of special characters with specific meanings ; If you want to match these special characters , It needs to be used. \ As the leader , This treatment is called escape (escaping), All characters with special meaning in regular expressions must be escaped in this way ;( To match the backslash {} Character itself , Need to use \\)
Be careful : Most regular expression implementations use a single backslash to escape special characters , So that these characters themselves can be used , and MySQL Two backslashes are required (MySQL Explain one for yourself , The regular expression library interprets a )
Match character class
Sometimes we need to retrieve the numbers we need 、 Matching of all alphabetic characters or all alphanumeric characters, etc , We can use predefined character sets , Called character class .
Match multiple instances
Sometimes it is necessary to have more control over the number of matches , such as : Find all the numbers , No matter how many numbers are included in the number , Or find a word and follow it s( If there is ) , etc. , We can use repeated metacharacters in regular expressions to complete .
select column from table where column regexp '\\([0-9] sticks?\\)' order by column;
The above regular expression ‘\([0-9] sticks?\)’ Meaning for :\ matching ([0-9] Match any number , This refers to the range of matching values ,sticks? matching stick and sticks{? send s Optional , because ? Match any character before it 0 perhaps 1 time }).
Locator
Sometimes in order to match the text in a specific position , Need to use locator , The list of commonly used locators is as follows :
Find one by one ( Including the number starting from the decimal point ) All values at the beginning , Simple search [0-9\.] or ([[:digit:]\.]) no way , Because it will find a match anywhere in the text , have access to ^ Locator , as follows :
select column from table where column regexp '^[0-9\\.]' order by column;
^ There are two uses
- In the assembly ( use [ and ] Definition ), Use it to negate the set
- Used of the beginning of a string
send regexp and like Do the same thing :like Match whole string two regexp Match the strings , You can use locators , use ^ Start each expression , use $ End each expression , You can make regexp and like It works the same .
Inquire about admin In the table group Field , The data format is :1,2,3;4,5,6;1,87,101
For example, query 101:
select * from xin_admin where `group` REGEXP '[,|;]?101[,|;]?';
边栏推荐
- Oracle RMAN automatic recovery script (migration of production data to test)
- 【信息检索导论】第三章 容错式检索
- ORACLE 11G利用 ORDS+pljson来实现json_table 效果
- Jordan decomposition example of matrix
- Open failed: enoent (no such file or directory) / (operation not permitted)
- 【信息检索导论】第七章搜索系统中的评分计算
- ABM论文翻译
- SSM实验室设备管理
- [torch] some ideas to solve the problem that the tensor parameters have gradients and the weight is not updated
- 使用 Compose 实现可见 ScrollBar
猜你喜欢
如何高效开发一款微信小程序
Feeling after reading "agile and tidy way: return to origin"
Only the background of famous universities and factories can programmers have a way out? Netizen: two, big factory background is OK
Drawing mechanism of view (I)
JSP智能小区物业管理系统
SSM student achievement information management system
使用Matlab实现:Jacobi、Gauss-Seidel迭代
Spark SQL task performance optimization (basic)
A slide with two tables will help you quickly understand the target detection
SSM second hand trading website
随机推荐
如何高效开发一款微信小程序
传统目标检测笔记1__ Viola Jones
【信息检索导论】第三章 容错式检索
华为机试题-20190417
常见CNN网络创新点
MySQL无order by的排序规则因素
Play online games with mame32k
类加载器及双亲委派机制
Oracle segment advisor, how to deal with row link row migration, reduce high water level
JSP intelligent community property management system
Open failed: enoent (no such file or directory) / (operation not permitted)
矩阵的Jordan分解实例
[introduction to information retrieval] Chapter II vocabulary dictionary and inverted record table
Sparksql data skew
MySQL has no collation factor of order by
使用Matlab实现:幂法、反幂法(原点位移)
Proteus -- RS-232 dual computer communication
常见的机器学习相关评价指标
离线数仓和bi开发的实践和思考
[introduction to information retrieval] Chapter 7 scoring calculation in search system