(8):mysql查询操作及正则表达式小结_MySQL
正则表达式
bitsCN.com怎么说呢,用markdown编辑好的文本,无法用在博客园中,不知道怎么处理。
一、排序
1、按多个列排序
使用逗号隔开,如果指定方向则紧挨着要排序的列名
对于多个列的排序,先按照前一个排序然后在前一个的基础上按照后面的排序。
如:
SELECT * FROM a2 ORDER BY a_id DESC,t_id desc
数据结果如下:
2、order by
与limit
SELECT * FROM a2 ORDER BY a_id DESC,t_id desc LIMIT 1
注意:order by
的位置,from
之后,limit
之前。
二、数据过滤操作符(and/or/in/not)
注意:优先级
当含有and
和or
时,and
的优先级高于or
,所以先执行and
,解决的办法就是使用()
括号的优先级高于and
,能够消除歧义。
如:
SELECT * FROM a2 WHERE (a_id = 2 or t_id>4) AND id>3
in
操作符的特点in
操作符完成了与or
相同的功能,如:
SELECT * FROM a2 WHERE t_id in(1,2,3)SELECT * FROM a2 WHERE t_id =1 OR t_id=2 OR t_id=3
上面两个功能相同。
既然如此,那么为什么还用in
呢,下面就说说in
的优点:
in
的优点:
1.在使用长的合法选项清单时,IN
操作符的更清楚直观
2.计算次序容易管理
3.比OR
执行快
4.IN
最大的优点可以包含其他select语句,能够动态的建立Where子句。
SELECT * FROM a2 WHERE t_id in( SELECT t_id FROM a2 WHERE id=5);
NOT 取反NOT
对IN
、BETWEEN
、exists
子句取反。
三、数据过滤通配符
%通配符
%:表示任何字符出现任意次数
LIKE '惠普%' :以'惠普'开头 LIKE '%惠普' :以'惠普'结尾 LIKE '%惠普%':包含'惠普' LIKE 's%e':以s开头,e结尾
注意:
1.除了一个或多个字符外,%还能匹配0个字符。
2.尾空格可能会干扰通配符匹配,如:保存great时,如果它后面有一个或多个空格,则%great
将不会匹配它们,因为后面有多余的字符(空格),解决办法就是使用双%,%great%
,一个更好的办法是使用函数去掉首尾空格。
3.%不能匹配NULL
.
_通配符
下划线通配符与%相同,但是它只匹配单个字符而非多个。
SELECT * FROM a WHERE name LIKE '_ood' #goodSELECT * FROM a WHERE name LIKE 'goo_' #goodSELECT * FROM a WHERE name LIKE 'go_d' #good
优化:
通配符在搜索处理上比其他的要慢些,所以要记住以下技巧:
1.不要过度使用通配符
2.不要把它们用在搜索模式的开始处,如若不然,搜索起来会很慢的。
3.仔细注意通配符的位置,切勿放错。
四、使用正则表达式
本小节学习如何在Where
子句中使用正则表达式来更好的控制数据过滤。
更多详细知识参考《正则表达式必知必会》
1.基本字符的匹配
SELECT * FROM a1 WHERE name regexp '1000' #匹配名称含有1000的所有行SELECT * FROM a1 WHERE name regexp '.000' #匹配以000结尾的所有行,(.正则中表示:匹配任意一个字符)
从中可以看到正则表达式能够模拟LIKE使用通配符,注意:在通配符能完成的时候就不用正则,因为正则可能慢点,当然正则也能简化通配符,完成更大的作用。所以要有所取舍。
LIKE
与REGEXP
的区别:
SELECT * FROM a1 WHERE name LIKE 'a' SELECT * FROM a1 WHERE name regexp 'a'
下面两条语句第一条不返回数据,第二条返回数据。
原因如下:
LIKE
匹配整个列值时,不会找到它,相应的行也不会被返回(除非使用通配符)
REGEXP
匹配时,会自动查找并返回结果。
那么REGEXP
也能匹配整个列值,使用^
和$
定位符即可!
匹配不区分大小写
Mysql正则大小写都会匹配,为区分大小写可使用binary
关键字,如:
SELECT * FROM a1 WHERE name LIKE binary '%J%' #使用LIKE+通配符匹配大写JSELECT * FROM a1 WHERE name regexp binary 'j' #使用正则匹配小写j
2.进行OR
匹配
|
为正则表达式的OR
操作符,表示匹配其中之一
SELECT * FROM a1 WHERE name regexp binary 'a|j|G'
3.匹配特定字符
使用[]
括起来的字符,将会匹配其中任意单个字符。
SELECT * FROM a1 WHERE name regexp '[12]st'
以上'[12]st'正则表达式,[12]定义一组字符,它的意思是匹配1或2,因此结果如下:
正如所见,
[]
是另一种OR
语句,[123]st可以是[1|2|3]st的缩写,也可以使用后者,注意:1|2|3 st
这样不推荐,因为mysql会假定你的意思是匹配'1'或'2'或'3st'除非你把字符|
括在一个集合中,如:[1|2|3]st
字符也可以否定,加^
则意味着除此之外,如[^123]st
意思是匹配除了1st、2st、3st之外的数据。
4.匹配范围
正则表达式可以使用
-
匹配一个范围,如[0-9]
匹配任意数字,无论是1还是11还是10111,[a-z]
匹配任意小写字母。
5.匹配特殊字符
如上,.
/-
/[]
等是正则表达式的特殊字符,如果要匹配含有这些字符的数据,就需要使用转义(escaping),//
。如//.
表示查找'.'。//
也用来引用元字符(具有特殊含义的字符),如://f
:表示换页//n
:表示换行//r
:表示回车//t
:表示制表//v
:表示纵向制表
Notes:
如果匹配反斜杠本身()则需要使用
///
为什么Mysql使用两个反斜杠(/),而很多语言使用一个反斜杠转义呢,因为mysql自己解释一个,正则表达式库解释一个。
6.匹配字符串

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

可以通过以下步骤打开 phpMyAdmin:1. 登录网站控制面板;2. 找到并点击 phpMyAdmin 图标;3. 输入 MySQL 凭据;4. 点击 "登录"。

MySQL是一种开源的关系型数据库管理系统,主要用于快速、可靠地存储和检索数据。其工作原理包括客户端请求、查询解析、执行查询和返回结果。使用示例包括创建表、插入和查询数据,以及高级功能如JOIN操作。常见错误涉及SQL语法、数据类型和权限问题,优化建议包括使用索引、优化查询和分表分区。

Redis 使用单线程架构,以提供高性能、简单性和一致性。它利用 I/O 多路复用、事件循环、非阻塞 I/O 和共享内存来提高并发性,但同时存在并发性受限、单点故障和不适合写密集型工作负载的局限性。

MySQL在数据库和编程中的地位非常重要,它是一个开源的关系型数据库管理系统,广泛应用于各种应用场景。1)MySQL提供高效的数据存储、组织和检索功能,支持Web、移动和企业级系统。2)它使用客户端-服务器架构,支持多种存储引擎和索引优化。3)基本用法包括创建表和插入数据,高级用法涉及多表JOIN和复杂查询。4)常见问题如SQL语法错误和性能问题可以通过EXPLAIN命令和慢查询日志调试。5)性能优化方法包括合理使用索引、优化查询和使用缓存,最佳实践包括使用事务和PreparedStatemen

选择MySQL的原因是其性能、可靠性、易用性和社区支持。1.MySQL提供高效的数据存储和检索功能,支持多种数据类型和高级查询操作。2.采用客户端-服务器架构和多种存储引擎,支持事务和查询优化。3.易于使用,支持多种操作系统和编程语言。4.拥有强大的社区支持,提供丰富的资源和解决方案。

Apache 连接数据库需要以下步骤:安装数据库驱动程序。配置 web.xml 文件以创建连接池。创建 JDBC 数据源,指定连接设置。从 Java 代码中使用 JDBC API 访问数据库,包括获取连接、创建语句、绑定参数、执行查询或更新以及处理结果。

SQL数据库错误查看方法有:1. 直接查看错误消息;2. 使用SHOW ERRORS和SHOW WARNINGS命令;3. 访问错误日志;4. 使用错误代码查找错误原因;5. 检查数据库连接和查询语法;6. 使用调试工具。

有效监控 Redis 数据库对于保持最佳性能、识别潜在瓶颈和确保整体系统可靠性至关重要。 Redis Exporter Service 是一个强大的实用程序,旨在使用 Prometheus 监控 Redis 数据库。 本教程将指导您完成 Redis Exporter Service 的完整设置和配置,确保您无缝建立监控解决方案。通过学习本教程,您将实现完全可操作的监控设置
