通配符
% 0或者多个字符
_ 任意一个字符
[charlist] 字符列中的任何单一字符
[^charlist] or [!charlist] 不在字符列中的任何单一字符
^[charlist] 以字符列中任何单一字符开头的
下面的 SQL 语句选取 name 以 "G"、"F" 或 "s" 开始的所有网站:
SELECT * FROM Websites
WHERE name REGEXP '^[GFs]';
^[^charlist] 不以字符列中任何单一字符开头的
MySQL里使用正则表达式 REGEXP
CONCAT函数 字符串拼接函数
CONCAT ('1','2','3') --------->123
CONCAT可以连接一个或者多个字符串,但是如果字符串中有一个为null,则结果返回null
CONCAT_WS concat with separator
CONCAT_WS('separator','a','b','c')
CONCAT_WS('x','a','b','c')----------> axbxc
CONCAT_WS('!','a','b','c')-----------> a!b!c
如果被拼接的字符串里面有一个null
CONCAT_WS('!','a','b',null)------->a!b
GROUP_CONCAT
GROUP_CONCAT(DISTINCT 需要连接字段 ORDER BY col_name ASC/DESC SEPARATOR '分隔符') FROM 表名 group by xxxx
id | name |
1 | a |
1 | a |
1 | b |
2 | c |
2 | d |
3 | e |
SELECT id,GROUP_CONCAT(name ORDER BY id ASC SEPARATOR '!') FROM tb GROUP BY id
1 a!a!b
2 c!d
3 e
REPLACE函数
两大功能
1 将表table的字段column1的abc替换成·def
UPDATE table SET column1=REPLACE(COLUMN1,'abc','def');
2将str字符串中from_str都换成to_str
REPLACE(str,from_str,to_str)
例子
"Monaco-Ville"是合併國家名字 "Monaco" 和延伸詞"-Ville".
顯示國家名字,及其延伸詞,如首都是國家名字的延伸。
你可以使用SQL函數 REPLACE 或 MID.
SELECT name,REPLACE(capital,name,'')
FROM world
WHERE capital LIKE CONCAT(name,'%')
AND
capital!=name;
Sql Server 中 text或ntext 字段内容替换
刚开始,Update AA 表 Set xx字段=Replace(xx字段,"要替换的","特定串") ,出现错误:函数 replace 的参数 1 的数据类型 ntext 无效。Update article set heading=Replace(convert(nvarchar(4000),heading),'<script></script>','')
1 | update 表名 |
2 | set text类型字段名= replace ( convert ( varchar (8000),text类型字段名), '要替换的字符' , '替换成的值' ) |
varchar和nvarchar类型是支持replace,所以如果你的text/ntext不超过8000/4000可以先转换成前面两种类型再使用replace。
1 | update 表名 |
2 | set text类型字段名= replace ( convert ( varchar (8000),text类型字段名), '要替换的字符' , '替换成的值' ) |
1 | update 表名 |
2 | set ntext类型字段名= replace ( convert (nvarchar(4000),ntext类型字段名), '要替换的字符' , '替换成的值' ) |
ROUND函数
在mysql中,round函数用于数据的四舍五入,它有两种形式:
1、round(x,d) ,x指要处理的数,d是指保留几位小数
这里有个值得注意的地方是,d可以是负数,这时是指定小数点左边的d位整数位为0,同时小数位均为0;
2、round(x) ,其实就是round(x,0),也就是默认d为0;
下面是几个实例
1、查询: select round(1123.26723,2);
结果:1123.27
2、查询: select round(1123.26723,1);
结果: 1123.3
3、查询: select round(1123.26723,0);
结果:1123
4、查询: select round(1123.26723,-1);
结果: 1120
5、查询: select round(1123.26723,-2);
结果:1100
5、查询: select round(1123.26723);
结果:1123