- 中文排序
- 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'
- 转化字符串
-
比如将123转换为
char
类型
SELECT
CAST
(123
AS
CHAR
);
-
或者使用concat方法 这个方法在SpringMVC框架里不是很好使 SELECT
CONCAT(123,
''
);
-
或者使用+''方法 SELECT
123+
''
;
- 时间和字符串
- oraclel
to_date('2017-03-04','yyyy-MM-dd')
- 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)
- 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...) | |
文字输出 | %文字 | 直接输出文字内容 |
- 查找某个字符串在一个字段里
- FIND_IN_SET(str,strlist)
假如字符串str 在由N 子链组成的字符串列表strlist 中, 则返回值的范围在 1 到 N 之间 。一个字符串列表就是一个由一些被‘,’符号分开的自链组成的字符串。如果第一个参数是一个常数字符串,而第二个是type SET列,则 FIND_IN_SET() 函数被优化,使用比特计算。如果str不在strlist 或strlist 为空字符串,则返回值为 0 。如任意一个参数为NULL,则返回值为 NULL。 这个函数在第一个参数包含一个逗号(‘,’)时将无法正常运行。
- IF VS CASE
- 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;
- CASE
简单函数:CASE [col_name] WHEN [value1] THEN [result1]…ELSE [default] END
搜索函数:CASE WHEN [expr] THEN [result1]…ELSE [default] END