Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103728890
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: Mysql/postgreSQL

2008-03-27 20:52:51

来源:博客    作者:yejr

1、用mysql内置函数转换ip地址和数字

利用两个内置函数

inet_aton:将ip地址转换成数字型

inet_ntoa:将数字型转换成ip地址

2、充分利用mysql内置的format函数

尤其是在处理字符格式的时候,例如将12345转换成12,345这样的,只要用:format(12345,0)即可,如果用format(12345,2)则显示的是12,345.00了...

3、利用mysql的内置函数处理时间戳问题

eg : select FROM_UNIXTIME(UNIX_TIMESTAMP(),'%Y %D %M %h:%i:%s %x');

结果: 2004 3rd August 03:35:48 2004

4、利用mysql_convert_table_format转换表类型

需要DBI和DBD的mysql相关模块支持才能用,例子:

mysql_convert_table_format --user=root --password='xx' --type=myisam test yejr

5、修改mysql表中的字段名

alter table tb_name change old_col new_col definition...

6、利用临时变量

select @var1:=a1+a2 as a_sum,@var2:=b1+b2 as b_sum,@var1+@var2 as total_sum from test_table xxx;

7、用int类型存储ip地址

原先错误的认为必须用bigint才够,后来发现使用int unsigned类型就足够了。 :)

8、CREATE TABLE IF NOT EXISTS ... select 语法局限

尽管只是对目标表的insert操作,但是‘居然’不允许源表的insert操作,真是莫名其妙

9、利用IF函数快速修改ENUM字段值

一个例子:

update rule set enable = if('0' = enable,'1','0') where xxx;

enable 类型:enum('0','1') not null default '0'

10、事务无法嵌套

11、避免长时间的sleep连接造成的连接数超出问题

设定全局变量 wait_timeout 和 interactive_timeout 为比较小的值,例如 10(s),就能使每个sleep连接在10s之后如果还没有查询的话自动断开。

阅读(323) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~