• 查看、修改数据库、表、行字符编码
SHOW CREATE DATABASE db_name;
ALTERDATABASE mydb CHARACTER SET utf-8(utf8) COLLATE utf8_general_ci

SHOW CREATE TABLE tbl_name;
ALTER TABLE logtest CONVERT TO CHARACTERSET utf8 COLLATE utf8_general_ci;

SHOW FULL COLUMNS FROM tbl_name;
ALTER TABLE `release` MODIFY COLUMN `note` text CHARACTER SET utf8 COLLATE utf8_unicode_ci;
  • mysql sum为空时默认显示0 用sum没有值时得到的值是NULL,这个时要用到mysql的函数COALESCE,作用是将返回传入的参数中第一个非null的值。
SELECT COALESCE(sum(price),0) AS total FROM orders;

  • MySQL在使用IN查询语句时,如果IN中包含子查询,则索引会失效。

  • 查看配置文件路径

    select @@basedir;
    

    不一定有效果,建议通过 mysql --help|grep 'my.cnf' 查找

  • 查看数据存储路径

    select @@datadir;
    
  • 查看当前时区

    mysql> show variables like '%time_zone%';   
    +------------------+--------+   
    | Variable_name    | Value  |   
    +------------------+--------+   
    | system_time_zone | CST    |    
    | time_zone        | SYSTEM |    
    +------------------+--------+   
    2 rows in set (0.00 sec)    
    
  • 修改时间,找到my.conf文件

    [mysqld]
    default-time-zone = '+8:00'
    
  • 当排序很影响效率的时候,试试只取主键,通过取得的主键来筛选数据

  • 出现mysqld_safe mysqld from pid file /var/lib/mysql/mysqld.pid ended此问题

  • SQL中更新字段兼条件的值变化

    UPDATE `pm_etf_projects` SET
    `portion_actual` = portion_actual - 10000,
    `status` =IF (portion_actual > 0, 5, 7)
    WHERE
    `pm_etf_projects`.`deleted_at` IS NULL
    AND (
    (
    	nid = '20210207143324'
    	AND STATUS = 5
    	AND portion_actual - 10000 >= 0
    )
    );
    

    portion_actual = portion_actual - 10000 中的portion_actual为原始值 status =IF (portion_actual > 0, 5, 7) 中的portion_actual为前面更新后的值 AND portion_actual - 10000 >= 0 中的portion_actual为原始值

  • mysqldump 导出数据库报错 “does not exist when using LOCK TABLES”

之所以会出现这样的问题,是因为mysqldump在导出的时候会请求锁定导出数据库中的所有表,以保证数据的一致性。但是导出时如果数据库在使用状态,则会出现 “does not exist when using LOCK TABLES”错误。 解决方法是在导出时加上-x选项。 例如:mysqldump -uroot -p -h127.0.0.1 -x test>/tmp/test.sql

DROP DATABASE IF EXISTS womapi_cn;
CREATE DATABASE womapi_cn DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci;
use womapi_cn;
\. /var/lib/mysql/womapi_cn_empty.sql