• 中文排序
  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)

小时 

%H

24小时制,两位数形式小时(00,01, ...,23)

%h

12小时制,两位数形式小时(00,01, ...,12)

%k

24小时制,数形式小时(0,1, ...,23)

%l

12小时制,数形式小时(0,1, ...,12)

%T

24小时制,时间形式(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

mysql复合主键优点_字段

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

mysql复合主键优点_MySQL_02