记录工作中用到的一些mysql函数,待补充。。。
IF()函数
IF函数,相当于java中的三目表达式。
IF(expr1,expr2,expr3)
参数含义:如果expr1的值为true,则返回expr2的值,如果expr1的值为false,
则返回expr3的值。
这里举一个工作中用到的例子:
SELECT DISTINCT
u.*
FROM
zt_client u
WHERE
u.enabled = TRUE
AND u.STATUS =: shopType
AND
IF
(
ISNULL( : NAME ) || LENGTH( trim( : NAME ) ) < 1,
1 = 1,
u.`name` LIKE %: NAME %
)
if前面的不用多说,就说函数里的,ISNULL( : NAME ) || LENGTH( trim( : NAME ) ) < 1,表示的就是该name参数如果没null或者去了空格之后的长度小于1,则返回1=1,否则返回u.name
LIKE %: NAME % 模糊查询
trim()函数
trim函数可以过滤指定的字符串:
完整格式:TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str)
简化格式:TRIM([remstr FROM] str)
返回字符串 str , 其中所有remstr前缀和/或后缀都已被删除。若分类符BOTH、LEADIN或TRAILING中没有一个是给定的,则假设为BOTH。remstr为可选项,在未指定情况下,可删除空格。
mysql> SELECT TRIM(' aaa ');
-> 'aaa'
mysql> SELECT TRIM(LEADING 'x' FROM 'xxxaaaxxx'); --删除指定的首字符 x
-> 'aaaxxx'
mysql> SELECT TRIM(BOTH 'x' FROM 'xxxaaaxxx'); --删除指定的首尾字符 x
-> 'aaa'
mysql> SELECT TRIM(TRAILING 'xyz' FROM 'aaaxxyz'); --删除指定的尾字符 x
-> 'aaax'
LTRIM()和RTRIM()函数
LTRIM(str)去除字符串左边空格
RTRIM(str)去除字符串右边空格
mysql> SELECT LTRIM(' add');
-> 'add'
mysql> SELECT RTRIM('add ');
-> 'add'
未完待续。。。