2. mysql的like查询如何区分大小写
where binary col2 like 'A%'
或者在建立表的时候就对该字段加上binary col2 varchar(10) binary
mysql可以替代like的方法有 INSTR(str,substr) 和 regexp
3.mysql的事务解释
简单明了 http://taoxingtianxia.iteye.com/blog/1439965
4. mysql关于中文的乱码问题
http://zsw4522006.iteye.com/blog/1436719
5.mysql中提高查询速度的方法
http://wzq1230789.iteye.com/blog/1431843
6.mysql中存储过程,需要先用delimiter重新定义分隔符,用完后再恢复成分号
不能用 create or replace , 只用create
delimiter //
create procedure BRH_SEQ_GENERATOR (appType VARCHAR(100), bizType VARCHAR(100), seqNo out varchar(100))
select concat(t.current_value , appType , bizType , LAST_INSERT_ID()
into seqNo
from comm_perform_param t
where t.code = 'biz.settle.date';
end//
delimiter ;
7. 关于count(*) count(1) count(col)问题
http://bbs.csdn.net/topics/390635419
结论:
COUNT(1)和COUNT(*)是一样的,你可以在里面写任何常量,如COUNT('CSDNDSB'),不会输出一列常量,不会去系统表里找所有列名。
COUNT(1)和COUNT(列名)意义不同,不能放在一起比较。唯一可比较的情况是列名是单主键表的主键列,即聚集非空单键值索引,这种情况下除非想要强制走聚集索引扫描,否则COUNT(1)优于COUNT(列名),因为前者允许计划选择最估索引,而且没有列输出。
关于那个COUNT的数量上限问题,虽然有,但基本不会遇到。因为INT的上限是21亿,有这么大数据量的表会不会用MSSQL本身就是个问题,如果真的在MSSQL里有这么个表还有人敢用COUNT算总数量那这人的智商不会超过60,所以知道有上限就好,平常不用太在意。