mysql的一些高级语句
一,今天给大家讲一下,做留言的一种追加的方式主要如果当前有留言,就更新当前的留言以追加的方式,如果没能留言就将入一条新的
mysql:insert into `table` (field) values ('$value') on duplicate key update `field`=concat('value',ifnull(`field`,''));
具体本条SQL的用法,请查看手册
二,讲一下统计的用法,主要介绍如何用一条SQL语句,统计某个用户的某个字段中不同状态的合
首先,(select t.username,t.action,count(*) as num from t group by t.username,t.action) as N用分组的方式将不同的用户中的某个字段的某些状态分组求合这是子句
然后,select N.username,max(CASE N.action where 'field1' then n.num else 0 end) as field1_num,max(CASE N.action where 'field2' then n.num else 0 end) as field2_num from ,(select t.username,t.action,count(*) as num from t group by t.username,t.action) as N group by N.username
然后分别显示username,field1_num,field2_num
相关文档:
我的环境:
原有一mysql5.0实例,现新安装一mysql5.1,并将新的5.1实例的数据路径放在另一目录。
mysql5.1的my.ini如下
(配置my.ini的参考资料:
http://dev.mysql.com/doc/refman/5.1/en/option-files.html
http://downloads.mysql.com/docs/mysql-windows-excerpt-5.1-en.pdf
http://dev.mysql.com/doc/refman/5.0 ......
显示、设置自动提交 show variable like 'autocommit' set autocommit=1 or 0
设置日志:
在/etc/mysql/my.cnf中设置如下可再slow.log中输出运行时间超过一秒的sql语句
[mysqld]
log-slow-queries = /tmp/slow.log
long_query_time = 1
设置日志输出运行超过1秒的sql语句 set global long_query_ti ......
query_cache_min_res_unit 查询缓存分配的最小块的大小(字节)
query_alloc_block_size 为查询分析和执行过程中创建的对象分配的内存块大小
Qcache_free_blocks代表内存自由块的多少,反映了内存碎片的情况
==========================
1)当查询进行的时候,Mysql把查询结果保存在qurey ......
CREATE PROCEDURE pro_page(
in _sql varchar(1000),
in _order varchar(1000),
in _pagecurrent int,
in _pagesize int
)
BEGIN
if _pagesize<=1 then
set _pagesize=20;
end if;
if _pagecurrent < 1 then
set _pagecurrent = 1;
&n ......
1、打开文本编辑my.cnf
sudo gedit /etc/mysql/my.cnf
在[client]
节点,添加
default-character-set=utf8 (客户端缺省以utf8存储)
在[mysqld]
节点,添加
default-character-set=utf8 (数据库缺省以utf8存储)
init_connect='SET NAMES utf8'
(设定连接mysql数据库时使用utf8编码,以让mysql数据库为utf8 ......