20
Jul
1、concat函数可以连接一个或者多个字符串,如:
select concat('11','22','33'); 结果: 112233
2、concat_ws 函数是用分隔符连接一个或者多个字符串,如
select concat_ws(',','11','22','33'); 结果:11,22,33
和concat()不同的是, concat_ws()函数在执行的时候,不会因为NULL值而返回NULL
3、concat_ws实例:
concat_ws 组合多字段(第1个参数是分隔符),进行模糊查询,如
用concat_ws优化,如
select concat('11','22','33'); 结果: 112233
2、concat_ws 函数是用分隔符连接一个或者多个字符串,如
select concat_ws(',','11','22','33'); 结果:11,22,33
和concat()不同的是, concat_ws()函数在执行的时候,不会因为NULL值而返回NULL
3、concat_ws实例:
concat_ws 组合多字段(第1个参数是分隔符),进行模糊查询,如
用concat_ws优化,如
Select * from jww_xxdd where concat_ws('+',xxdd_dybh,kh_dh,ydbh) like '%281%' ;
Select * from jww_xxdd where xxdd_dybh like '%281%' or kh_dh like '%281%' or ydbh like '%281%' ;
20
Jul
select books from tb_book where books
regexp ‘^php’; 字符串开头
regexp ‘php$’; 字符串结尾
regexp ‘p.’; #匹配任意一个字符
regexp ‘[abc]’; #匹配abc中任意一个字符
regexp ‘[^a-z]’; #匹配除字符集外任意一个字符
regexp ‘s1|s2|s3’;#匹配任意一个字符串
regexp ‘j*a’; #匹配多个该字符a之前的字符j;j+a至少一个j
regexp ‘a{3}’; #匹配字符串连续出现3次
regexp ‘a{2,4}’; #匹配字符串最少2次,最多4次
regexp ‘^php’; 字符串开头
regexp ‘php$’; 字符串结尾
regexp ‘p.’; #匹配任意一个字符
regexp ‘[abc]’; #匹配abc中任意一个字符
regexp ‘[^a-z]’; #匹配除字符集外任意一个字符
regexp ‘s1|s2|s3’;#匹配任意一个字符串
regexp ‘j*a’; #匹配多个该字符a之前的字符j;j+a至少一个j
regexp ‘a{3}’; #匹配字符串连续出现3次
regexp ‘a{2,4}’; #匹配字符串最少2次,最多4次
7
May
1、自定义FUNCTION函数:
2、查看自定义函数:
3、删除FUNCTION函数:
delimiter $$
CREATE FUNCTION lswlif(qian decimal(6,2))
RETURNS varchar(10) CHARSET utf8
BEGIN
if (qian > 0) then
RETURN '亏';
elseif (qian < 0) then
RETURN '盈';
ELSE
RETURN '平';
end if;
END $$
delimiter ;
CREATE FUNCTION lswlif(qian decimal(6,2))
RETURNS varchar(10) CHARSET utf8
BEGIN
if (qian > 0) then
RETURN '亏';
elseif (qian < 0) then
RETURN '盈';
ELSE
RETURN '平';
end if;
END $$
delimiter ;
2、查看自定义函数:
show function status;
3、删除FUNCTION函数:
DROP FUNCTION lswlif;
本句中的“lswlif”是函数名。
29
Aug
MySQL批量删除指定前缀表
"dede"为要删除的表前缀,执行此SQL语句后会生成一串SQL语句,必须再执行生成的这些SQL语句才能真正执行删除操作。
另外一个就是批量修改表名:
以上都必须首先在服务器 "localhost" 运行 SQL 查询,然后在对应的数据库下运行 SQL 查询。
Select CONCAT( 'drop table ', table_name, ';' ) FROM information_schema.tables Where table_name LIKE 'dede_%';
"dede"为要删除的表前缀,执行此SQL语句后会生成一串SQL语句,必须再执行生成的这些SQL语句才能真正执行删除操作。
另外一个就是批量修改表名:
Select CONCAT( 'ALTER TABLE ', table_name, 'RENAME TO ', table_name,';' ) FROM information_schema.tables Where table_name LIKE 'dede_%';
以上都必须首先在服务器 "localhost" 运行 SQL 查询,然后在对应的数据库下运行 SQL 查询。
7
Aug
数据库结构表
按Name汇总收入和支出的语句:
效果图:
CREATE TABLE IF NOT EXISTS `ceshi` (
`id` int(5) NOT NULL auto_increment,
`Type` enum('1','2') character set utf8 NOT NULL default '1' COMMENT '1:收入,2:支出',
`Name` varchar(4) character set utf8 NOT NULL,
`date` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
`Amount` decimal(9,2) NOT NULL COMMENT '金额',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
`id` int(5) NOT NULL auto_increment,
`Type` enum('1','2') character set utf8 NOT NULL default '1' COMMENT '1:收入,2:支出',
`Name` varchar(4) character set utf8 NOT NULL,
`date` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
`Amount` decimal(9,2) NOT NULL COMMENT '金额',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
按Name汇总收入和支出的语句:
select NAME, sum(if(Type=1,Amount,0)) as 收入,
sum(if(Type=2,Amount,0)) as 支出 from ceshi group by name
sum(if(Type=2,Amount,0)) as 支出 from ceshi group by name
效果图: