分类 MySql 下的文章

case when 自定义排序时的使用

CASE 
    WHEN t2.status = 4
    AND t2.expire_time>UNIX_TIMESTAMP()
    AND t2.expire_time<UNIX_TIMESTAMP(DATE_ADD(NOW(),INTERVAL 60 DAY)) THEN 4
        WHEN `status` = 2  THEN 3
        WHEN `status` = 3 THEN 2
        WHEN t2.status = 4
        AND t2.expire_time>UNIX_TIMESTAMP(DATE_ADD(NOW(),INTERVAL 60 DAY))
        AND t2.expire_time<UNIX_TIMESTAMP(DATE_ADD(NOW(),INTERVAL 1 YEAR)) THEN 1
    ELSE 0
    END sort     
$query->orderBy('sort desc ,t2.expire_time desc,t2.created_at desc');

当colume 与condition 条件相等时结果为result

case colume 
    when condition then result
    when condition then result
    when condition then result
else result
end

当满足某一条件时,执行某一result

case  
    when condition then result
    when condition then result
    when condition then result
else result
end

  • 转换为字符串
CAST(1234 AS CHAR)
  • 转换为decimal
CAST('123.45678' as DECIMAL(10,2))
  • 转换为整型
CAST('123' as INT)

SQLSTATE[40001]: senalization failure 1213 deadlock found when trying to get lock, try restarting transaction (SQL: UPDATE ...)

网上找的答案
https://www.cnblogs.com/doseoer/p/10325596.html

官方文档
https://dev.mysql.com/doc/refman/8.0/en/innodb-deadlocks-handling.html


SQLSTATE[HY000] [2002] Connection refused

前端反馈测服偶尔出现这个错误
参考了网上很多答案, 很多人说把配置文件里面的localhost改为127.0.0.1就可以了, 也许吧