美文网首页
MySQL 学习 Part5 - MySQL数据过滤和正则匹配

MySQL 学习 Part5 - MySQL数据过滤和正则匹配

作者: 遇见Miu | 来源:发表于2020-05-19 15:28 被阅读0次

📜 MySQL的一些数据过滤和正则匹配
🥰 每天都要进步呐


1.MySQL的数据过滤

使用where子句

SELECT prod_name, prod_price FROM products WHERE prod_price = 2.5;

使用where子句操作符

💡"="、">"、"<"、">="、"<="、"<>"或者"!="(不等于)、"between"

  • 价格小于10元的产品

    SELECT prod_name, prod_price FROM products WHERE prod_price < 10;
    
  • 价格小于等于10元的产品

    SELECT prod_name, prod_price FROM products WHERE prod_price <= 10;
    
  • 不是供应商1003制造的产品

    SELECT vend_id, prod_name FROM products WHERE vend_id <> 1003;
    
  • 价格在5元与10元之间的产品 (范围检查)

    // 使用between
    SELECT prod_name, prod_price FROM products WHERE prod_price BETWEEN 5 AND 10;
    // 单纯使用and
    SELECT prod_name, prod_price FROM products WHERE prod_price <= 10 AND prod_price >= 5;
    
  • 空值检查

    SELECT * FROM customers WHERE cust_email IS NULL;
    

使用andornot操作符

  • andor 操作符 (多个条件)

    SELECT prod_id, prod_price, prod_name FROM products WHERE vend_id = 1002 or vend_id = 1003;
    
  • 计算次序

    and的优先级是高于or

    SELECT vend_id, prod_id, prod_price, prod_name FROM products WHERE vend_id = 1002 or vend_id = 1003 and prod_price >= 10;
    SELECT vend_id, prod_id, prod_price, prod_name FROM products WHERE (vend_id = 1002 or vend_id = 1003) and prod_price >= 10;
    
  • in操作符

    SELECT prod_id, prod_price, prod_name FROM products WHERE vend_id = 1002 or vend_id = 1003;
    SELECT prod_id, prod_price, prod_name FROM products WHERE vend_id IN (1002, 1003);
    

    结果是一样的,并且支持多个

  • not操作符

    SELECT vend_id, prod_id, prod_price, prod_name FROM products WHERE vend_id NOT IN (1002, 1003, 1001);
    

使用通配符

  • like通配符

    SELECT prod_id, prod_name FROM products WHERE prod_name LIKE 'jet%';
    

    💡"*"和"%"都代表任何字符,匹配时不区分大小写

    SELECT prod_id, prod_name FROM products WHERE prod_name LIKE '%anvil%';
    
  • 搜索模式

    搜索prod_name以s开头,e结尾

    SELECT prod_id, prod_name FROM products WHERE prod_name LIKE 's%e';
    
  • 下划线通配符 (按字符匹配)

    SELECT prod_id, prod_name FROM products WHERE prod_name LIKE 's%e';
    

    💡"%"和"_"的区别

    💡两个下划线

2.正则表达式搜索

1.基本字符匹配

⚠️REGEXP正则

2.匹配000的产品信息

⚠️"."表示任何一个字符

这样的结果也是相同的

SELECT prod_name FROM products WHERE prod_name REGEXP '.000';
SELECT prod_name FROM products WHERE prod_name LIKE 'JetPack _000';

3.使用or进行匹配

SELECT prod_name FROM products WHERE prod_name REGEXP '1000|2000';

4.范围匹配

SELECT prod_name FROM products WHERE prod_name REGEXP '[12] ton';

⚠️括号中的每个字符都可以进行匹配

5.范围匹配结合or匹配

SELECT prod_name FROM products WHERE prod_name REGEXP '1|2 ton';

⚠️注意:这么匹配为"1"或"2 ton", 所以结果会有问题,所以用[1|2]括号括起来,和上述是一样的效果[12]

SELECT prod_name FROM products WHERE prod_name REGEXP '[1|2] ton';
SELECT prod_name FROM products WHERE prod_name REGEXP '[12] ton';

6.排它符

SELECT prod_name FROM products WHERE prod_name REGEXP '[^3] ton';
SELECT prod_name FROM products WHERE prod_name REGEXP '[^345] ton';

⚠️括号里面的字符都过滤掉

7.特殊字符匹配

SELECT prod_name FROM products WHERE prod_name REGEXP '[123456789] ton';
SELECT prod_name FROM products WHERE prod_name REGEXP '[1-9a-z] ton';

⚠️第二句是指可以匹配1-9和a-z所有的某个字符

8."."的使用

SELECT prod_name FROM products WHERE prod_name REGEXP '\\.';

\\f 换页
\\n 换行
\\r 回车键 
\\t 横向tab键
\\v 纵向tab键
\\\ 斜杠

⚠️使用\进行转译

9.匹配多个实例

SELECT prod_name FROM products WHERE prod_name REGEXP '\\([0-9] sticks?\\)';

⚠️s后面加个?表示s可以不出现或者出现至少一次

10.字符类

匹配4个数字

SELECT prod_name FROM products WHERE prod_name REGEXP '[0-9][0-9][0-9][0-9]';

或者

SELECT prod_name FROM products WHERE prod_name REGEXP '[[:digit:]]{4}';

⚠️[:digit:]证明里面是数字,{}中间写的是出现次数

11.定位符

// 以"."作为开头
SELECT prod_name FROM products WHERE prod_name REGEXP '^[\\.]';
// 以"."作为结尾
SELECT prod_name FROM products WHERE prod_name REGEXP '[\\.]$';

⚠️匹配以"."开头的,"^"在[]里面是排他,在[]外面是指以某某开头


相关文章

  • MySQL 学习 Part5 - MySQL数据过滤和正则匹配

    ? MySQL的一些数据过滤和正则匹配? 每天都要进步呐 1.MySQL的数据过滤 使用where子句 使用whe...

  • Mysql 正则表达式进行搜索(六)

    本节将简单介绍如何在 Mysql where 子句内使用正则表达式来更好地控制数据过滤 基本字匹配符 输出为: r...

  • mysql(04day)

    Mysql支持正则表达式的匹配,Mysql中使用REGEXP操作符来进行正则表达式匹配。 下面中的正则模式中可用于...

  • MySql基本操作(二)

    1. 正则表达式 MySQL可以通过 LIKE ...% 来进行模糊匹配。MySQL 同样也支持其他正则表达式的匹...

  • MySql正则匹配结果

    正则表达式基本语法: MySql中正则模式使用REGEXP和NOT REGEXP操作符。 基本的正则匹配规则: 1...

  • mysql 正则表达式

    mysql 正则表达式的运算符是REGEXP mysql 的正则表达式不支持 \d, 所以匹配数字只能用 [0-9...

  • MySQL 正则表达式

    MySQL中使用 REGEXP 操作符来进行正则表达式匹配。 1、正则模式描述 ^:匹配输入字符串的开始位置。如果...

  • 树莓派——mysql的学习(3)

    由MySQL提供的模式匹配的其它类型是使用扩展正则表达式。当你对这类模式进行匹配测试时,使用REGEXP和NOT ...

  • MySQL笔记

    MySQL学习笔记 [toc] 登录和退出MySQL服务器 基本语法 正则表达式 字段拼接 分组 全文搜索 视图 ...

  • com.mysql.jdbc.exceptions.jdbc4.

    检查Mysql Server版本和mysql-connector-java版本是否匹配

网友评论

      本文标题:MySQL 学习 Part5 - MySQL数据过滤和正则匹配

      本文链接:https://www.haomeiwen.com/subject/ftbvohtx.html