首页 > 数据库 >mysql正则表达式

mysql正则表达式

时间:2022-09-25 21:12:24浏览次数:39  
标签:匹配 NAME 正则表达式 -- user mysql where USER

一:数据准备

CREATE TABLE `t_user` (
  `USER_ID` int NOT NULL AUTO_INCREMENT,
  `USER_NAME` char(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `USER_PASSWORD` char(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `USER_EMAIL` char(80) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  PRIMARY KEY (`USER_ID`),
  KEY `IDX_NAME` (`USER_NAME`)
) ENGINE=InnoDB AUTO_INCREMENT=209 DEFAULT CHARSET=utf8mb3;

-- 如果存在此存储过程则删掉
DROP PROCEDURE IF EXISTS proc_initData;
DELIMITER ;
CREATE PROCEDURE proc_initData()
BEGIN
    DECLARE i INT DEFAULT 1;
    WHILE i<=6000 DO
        INSERT INTO t_user(USER_NAME,USER_PASSWORD,USER_EMAIL) VALUES(MD5(UUID()),MD5(UUID()),
				 CONCAT(substring(UUID(),1,7) , '@', substring(UUID(),4,8) ,'.com')
				);
        SET i = i+1;
    END WHILE;
END ;
CALL proc_initData();

二:符号介绍

模式	描述(具体匹配什么)
^	匹配字符串的开始位置。
$	匹配字符串的结束位置。
.	匹配除 "\n" 之外的任何单个字符。
[...]	匹配所包含的任意一个字符。
[^...]	匹配未包含的任意字符。
?	匹配它前面的零个或一个子表达式(字符串)。
*	匹配它前面的零个或多个子表达式(字符串)。
+	匹配它前面的一个或多个子表达式(字符串)。
[abc]	匹配方括号之间列出的任何字符。
[^abc]	匹配方括号之间未列出的任何字符。
[A-Z]	匹配任何大写字母。
[a-z]	匹配任何小写字母。
[0-9]	匹配从0到9的任何数字。
[[:<:]]	匹配单词的开头。
[[:>:]]	匹配单词的结尾。
[:class:]	匹配字符类,即[:alpha:]匹配字母,[:space:]匹配空格,[:punct:]匹配标点符号,[:upper:] 匹配上层字母。
p1|p2|p3	匹配任何模式,p1或 p2或p3
{n}	匹配n前面元素的子表达式
{m,n}	匹配m到前面元素的n个子表达式
select * from t_user;

-- 包含8的正则匹配
select * from t_user where USER_NAME REGEXP '8';

-- 包含8或者9的正则匹配 or
select * from t_user where USER_NAME REGEXP '8|9';

-- 以8开头的正则匹配
SELECT * from t_user where USER_NAME REGEXP '^8' ;

-- 以1结尾的正则匹配
SELECT * from t_user where USER_NAME REGEXP '1$' ;


-- 以8或者9开头的正则匹配
SELECT * from t_user where USER_NAME REGEXP '^[8-9]' ;


-- 以a-z开头的正则匹配 并且第二位是数字8的正则匹配
SELECT * from t_user where USER_NAME REGEXP '^[a-z]8' ;

-- 转义符号 由于.是特殊符号 那么要找包含.的字符必须转义
SELECT * from t_user where USER_PASSWORD REGEXP '\\.' ;


-- ^[8]* 以8开头有0个或者多个  [a-z]+ 有1个或者多个 0? 有0个或者1个匹配  [:alpha:]{1,4} 任意字符1到4个
SELECT * from t_user where USER_NAME REGEXP '^[8]*[a-z]+0?[:alpha:]{1,4}' ;
SELECT CONCAT(USER_ID,'-',USER_PASSWORD,' USER_NAME:',USER_NAME) as new_name from t_user where USER_NAME REGEXP '^[8]*[a-z]+0?[:alpha:]{1,4}' ;

标签:匹配,NAME,正则表达式,--,user,mysql,where,USER
From: https://www.cnblogs.com/noatnu/p/16728924.html

相关文章

  • mysql运维
    一:备份1:备份内容数据(数据文件或文本格式数据)操作日志(binlog)(数据库变更日志)2:冷备份与热备份冷备份(关闭数据库服务,完整拷贝数据文件)热备份......
  • mysql存储过程
    MySQLmysql存储过程概述存储过程是存储在数据库的一组SQL语句集,用户可以通过存储过程名和传参多次调用的程序模块。特点:使用灵活,可以使用流控制语句,自定义变量等完......
  • mysql索引
    索引MySQL使用索引快速查找具有特定列值的行。如果没有索引,MySQL必须扫描整个表以找到相关的行。较大的表,搜索速度越慢。索引由类型和方法组成(有的时候你没有指定就......
  • mysql触发器
    SQL触发器简介SQL触发器是存储在数据库目录中的一组SQL语句。只要与表关联的事件发生,例如插入,更新或删除,就会执行或触发SQL触发器SQL触发器的优点SQL触发器提供了另......
  • MySQL数据表的创建、修改、删除及基本操作
    1.在mysql中,可以使用 CREATETABLE 语句创建表。其语法格式为:转自:https://www.cnblogs.com/bigbigbigo/p/10917429.html/*建表的语法*/createtable[ifnotexist]......
  • mysql用户与权限
    mysql.version=5.7(必须注意版本)创建用户(CREATEUSER'bob'@'%'IDENTIFIEDBY'07fa533360d9';)创建bob用户密码:07fa533360d9(CREATEUSER"test"@"localh......
  • 老杜MySQL/days.05(索引、视图、三范式)
    1.索引a.索引是在数据库表的字段上添加的,为了提高查询效率而存在的一种机制;b.相当于目录,可以缩小扫描范围而存在的一种机制;c.一张表的一个字段可以添......
  • MySQL 主从同步延迟监控
    MySQL5.7和8.0支持通过replication_applier_status表获同步延迟时间,当从库出现延迟后,该表中的字段REMAINING_DELAY记录延迟秒数,当没有延迟时,该字段值为NULL,官方对该字......
  • 神奇的匹配:正则表达式求精之旅 pdf
    高清扫描版下载链接:https://pan.baidu.com/s/1HsK-_YUILKCd3NmzEB9iCw点击这里获取提取码  ......
  • MySQL数据库的创建、修改、删除及基本操作
    1.MySQL数据库的创建,语法格式如下:CREATEDATABASE[IFNOTEXISTS]<数据库名>[[DEFAULT]CHARACTERSET<字符集名>][[DEFAULT]COLLATE<校对规则名>];[]中的内......