MySQL自学笔记
使用MySQL 5.5以及MySQL自带命令客户端
模糊查询
模糊查询使用like作为关键字加上通配符来进行查询。
有四种通配符:
* %:表示0个或者多个字符。可以匹配任意类型和长度的字符,有些情况下若是中文,得用两个百分号来进行表示(%%)
select * from table1 where user_name like '%mac%';
# user_name中含有`mac`的全部找出来!
如果有必要,可以使用逻辑符进行查询,可以查询包含多个字符的情况!
-:表示任意单个字符。匹配单个任意字符,它通常用来表示限制字符长度的语句
select * from table1 where user_name like '_三_';
# 找出user_name中三个字的且中间那个字是三的!
select * from table1 where user_name like '__三';
# 找出user_name中三个字的且最后一个字是三的!
[]:表示括号内所列的字符中的一个相匹配。指定一个字符、字符串或者范围,要求所匹配对象为他们中的任意一个
select * from table1 where user_name like '[张李黄]婷';
# 找出‘张婷’、‘李婷’、‘黄婷’这种的(不是找出‘张李黄婷’)!
如果[]中有一系列字符(比如[01234]、[abcde]这种),可以使用略写[0-4]、[a-e]
select * from table1 where user_name like '老[0-9]';
# 找出‘老0’、‘老1’、...、‘老9’;
[^ ]:找出不包含括号内单个字符的数据。其规则与[]类似,也可以使用略写等!模糊查询中如果在要查询的内容中包含通配符时使用如下方法:
使用转义字符来进行处理。
select lastname from table1 where user_name like '%A_B%' # 查询 所得结果会出现‘ACB’、‘ADB’、...这种情况,而实际上如果想要查询的是字符中含有‘A_B’的话,得如下面一样进行操作 select lastname from table1 where user_name like '%A\_B%' escape '\';还有一种方法是采用编写函数来对字符中含有的通配符进行处理一下,在进行查询。这里暂时就先略过这个方法!
浙公网安备 33010602011771号