当前位置:网站首页>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[,|;]?';
边栏推荐
- Only the background of famous universities and factories can programmers have a way out? Netizen: two, big factory background is OK
- Conda 创建,复制,分享虚拟环境
- Changes in foreign currency bookkeeping and revaluation general ledger balance table (Part 2)
- [introduction to information retrieval] Chapter II vocabulary dictionary and inverted record table
- 【MEDICAL】Attend to Medical Ontologies: Content Selection for Clinical Abstractive Summarization
- 一个中年程序员学习中国近代史的小结
- 华为机试题-20190417
- view的绘制机制(二)
- [tricks] whiteningbert: an easy unsupervised sentence embedding approach
- parser.parse_args 布尔值类型将False解析为True
猜你喜欢
【MEDICAL】Attend to Medical Ontologies: Content Selection for Clinical Abstractive Summarization
【论文介绍】R-Drop: Regularized Dropout for Neural Networks
类加载器及双亲委派机制
The first quickapp demo
Cognitive science popularization of middle-aged people
Pratique et réflexion sur l'entrepôt de données hors ligne et le développement Bi
ssm垃圾分类管理系统
[tricks] whiteningbert: an easy unsupervised sentence embedding approach
Sparksql data skew
使用MAME32K进行联机游戏
随机推荐
MapReduce concepts and cases (Shang Silicon Valley Learning Notes)
Two table Association of pyspark in idea2020 (field names are the same)
Oracle general ledger balance table GL for foreign currency bookkeeping_ Balance change (Part 1)
TCP attack
SSM personnel management system
MySQL组合索引加不加ID
ORACLE 11G利用 ORDS+pljson来实现json_table 效果
Cognitive science popularization of middle-aged people
PointNet原理证明与理解
Tencent machine test questions
[torch] some ideas to solve the problem that the tensor parameters have gradients and the weight is not updated
spark sql任务性能优化(基础)
Oracle apex Ajax process + dy verification
CSRF attack
@Transational踩坑
SSM supermarket order management system
MySQL has no collation factor of order by
Conda 创建,复制,分享虚拟环境
Oracle段顾问、怎么处理行链接行迁移、降低高水位
ssm垃圾分类管理系统