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

2020-05-19  本文已影响0人  遇见Miu

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


1.MySQL的数据过滤

使用where子句

SELECT prod_name, prod_price FROM products WHERE prod_price = 2.5;

使用where子句操作符

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

使用andornot操作符

使用通配符

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 '[\\.]$';

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


上一篇 下一篇

猜你喜欢

热点阅读