MySQL语句小技巧集合--持续更新

  • 中文排序
  1. MySQL里按中文排序,MySQL里默认的不是用ASCII值排序的需转换成GBK才可以  ORDER BY  CONVERT('字段名称',USING GBK) DESC

  • 查询出的字段拼成一个字符串

      GROUP_CONCAT(字段名),

---例
SELECT GROUP_CONCAT(s.NAME) FROM sys_dictionaries s WHERE s.ZD_CODE='ZCZT'

  • 转化字符串
  1. 比如将123转换为char类型     SELECT CAST(123 AS CHAR); 
  2. 或者使用concat方法 这个方法在SpringMVC框架里不是很好使   SELECT CONCAT(123,'');
  3. 或者使用+''方法   SELECT 123+'';

  • 时间和字符串
  1. oraclel

         to_date('2017-03-04','yyyy-MM-dd') 

  1. MySQL:

         时间转字符串:select date_format(now(), '%Y-%m-%d');   --2018-12-13

         时间转时间戳:select unix_timestamp(now());     --1544664386

         字符串转时间:select str_to_date('2016-01-02', '%Y-%m-%d %H');  --2017-01-02 00:00:00

          时间戳转时间:select from_unixtime(1544665532, '%Y-%m-%d %H:%i:%S');  --2018-12-13 09:45:32 后面的格式可以不              写 select from_unixtime(1544665532)

  1. MySQL日期格式化(format)取值范围。
 含义
%S、%s两位数字形式的秒( 00,01, ..., 59)
%I、%i两位数字形式的分( 00,01, ..., 59)
小时 %H24小时制,两位数形式小时(00,01, ...,23)
%h12小时制,两位数形式小时(00,01, ...,12)
%k24小时制,数形式小时(0,1, ...,23)
%l12小时制,数形式小时(0,1, ...,12)
%T24小时制,时间形式(HH:mm:ss)
%r 12小时制,时间形式(hh:mm:ss AM 或 PM)
%p AM上午或PM下午 
周 %W一周中每一天的名称(Sunday,Monday, ...,Saturday)
%a一周中每一天名称的缩写(Sun,Mon, ...,Sat) 
%w 以数字形式标识周(0=Sunday,1=Monday, ...,6=Saturday) 
%U数字表示周数,星期天为周中第一天
%u数字表示周数,星期一为周中第一天
%d 两位数字表示月中天数(01,02, ...,31)
%e  数字表示月中天数(1,2, ...,31)
%D英文后缀表示月中天数(1st,2nd,3rd ...) 
%j以三位数字表示年中天数(001,002, ...,366) 
%M 英文月名(January,February, ...,December) 
%b 英文缩写月名(Jan,Feb, ...,Dec) 
%m 两位数字表示月份(01,02, ...,12)
%c 数字表示月份(1,2, ...,12) 
%Y 四位数字表示的年份(2015,2016...)
%y  两位数字表示的年份(15,16...)
文字输出 %文字 直接输出文字内容

  • 查找某个字符串在一个字段里
  1. FIND_IN_SET(str,strlist)

假如字符串str 在由N 子链组成的字符串列表strlist 中, 则返回值的范围在 1 到 N 之间 。一个字符串列表就是一个由一些被‘,’符号分开的自链组成的字符串。如果第一个参数是一个常数字符串,而第二个是type SET列,则   FIND_IN_SET() 函数被优化,使用比特计算。如果str不在strlist 或strlist 为空字符串,则返回值为 0 。如任意一个参数为NULL,则返回值为 NULL。 这个函数在第一个参数包含一个逗号(‘,’)时将无法正常运行。 


  • IF VS CASE
  1. IF(Condition,A,B)

当Condition为TRUE时,返回A;当Condition为FALSE时,返回B。 

例:select if(1=1 and 1=2,'1','0') testValue from dual

扩展:IFNULL(expr1,expr2

假如expr1 不为 NULL,则 IFNULL() 的返回值为 expr1; 否则其返回值为 expr2。IFNULL()的返回值是数字或是字符串,             具体情况取决于其所使用的语境。

例:SELECT IFNULL('',2) testValue --''; SELECT IFNULL(null,2) testValue --2;

  1. CASE

简单函数:CASE [col_name] WHEN [value1] THEN [result1]…ELSE [default] END

搜索函数:CASE WHEN [expr] THEN [result1]…ELSE [default] END

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

萝卜C

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值