mysql-杂技

完全卸载mysql方法:http://jingyan.baidu.com/article/f96699bbaa8fc1894f3c1b5a.html

 

重要:

      建表一定要有主键,不然数据大了会出问题

 

1、liunx下停止、启动、重新启动mysql的方法

       5.6版本用的是mysqld,5.0用的是mysql,版本5.6操作如下:

       使用service操作

              service mysqld stop  

              service mysqld start

              service mysqld restart

             

              从新启动或者:service mysql.server restart

        使用 mysqld 脚本操作:

              /etc/init.d/mysqld stop

              /etc/init.d/mysqld start

              /etc/init.d/mysqld restart

 

2、mySql自带MD5函数

SELECT * FROM om_user WHERE user_name='system' AND PASSWORD= MD5('111111111')

说明:其中“PASSWORD”为"om_user"表的字段,"111111111"为被MD5加密后“PASSWORD”字段的值, “MD5”为Mysql自带函数。

 

3、将密码修改为md5密码格式

UPDATE sys_user  SET PASSWORD=MD5(PASSWORD);

 

4、mysql分组和并(将多行和成一行已关键字分开)

SELECT GROUP_CONCAT(agent_id,'') FROM (
SELECT agent_id FROM om_agent WHERE agent_id IN (1,2))ww;

 注释:GROUP_CONCAT用于分组查询是合并多行数据。

 

5、定义将查询的得到的值为变量插入到表数据 

SELECT @name:=name001 FROM `tem_calss` WHERE id = 1;
INSERT INTO `tem_calss` VALUES (8,@name,'语文',200);
INSERT INTO `tem_calss` VALUES (9,@name,'语文',200);

 注释:一起执行。

 

6、mysql查看sql执行计划(在sql调优时用到)

EXPLAIN SELECT game_id,platform_id,event_id,SUM(user_num) FROM t_game_event_stat GROUP BY event_id ORDER BY game_id,platform_id,event_id;

   说明:explain 是mysql查看sql语句执行情况的命令,需要查看sql执行计划是在sql语句前加上命令即可。

 

7、linux系统下,将查询数据输出到一个文件

SELECT * FROM tx_task_market WHERE serverid = 9 AND step = 1 AND STATUS = 0 INTO OUTFILE 'test.txt';

   路径是在数据库目录,
   例如 数据库路径: /var/lib/mysql/test
   因此导出 的数据文件 详细路径为:
   /var/lib/mysql/test/test.txt.
   如果不知道数据库目录,可以 通过 “find /  -name  test.txt ” 命令查找 。

 

   8、导出表数据,不要进入数据库,在数据库外执行如下命令

-- 导出数据库support的所有表的表结构,其中数据库为root密码为mh_17188_com_vps_99,/home/sxdkj/project/support.sql为导出路径(去掉-d就变成导出表结构和数据)
mysqldump -uroot -pmh_17188_com_vps_99 -d support > /home/sxdkj/project/support.sql

-- 导出数据库support的t_platform和t_menu表的表结构,其中数据库为toot密码为mh_17188_com_vps_99(去掉-d就变成导出表结构和数据)
mysqldump -uroot -pmh_17188_com_vps_99 -d support t_platform t_menu> /home/sxdkj/project/t_platform.sql

  

   9 Mysql查找如何判断字段是否包含某个字符串 

SELECT * FROM users WHERE find_in_set('[email protected]', emails);

   这样子就可以找到email字段里包含有[email protected]的所有用户了

 

10 mysql取分组后,每个组的第一条记录

select a.*
  from (select t1.*,
               (select count(*) + 1
                  from 表
                 where 分组字段 = t1.分组字段
                   and 排序字段 < t1.排序字段) as group_id
          from 表 t1) a
 where a.group_id = 1;

 

11  强制使用索引

 

SELECT * FROM t_order o FORCE INDEX(Fcreate_time)
   

猜你喜欢

转载自x125858805.iteye.com/blog/2067437