看见公司的代码有些函数没见过,特意学习了一下,做个记录——中科信息
1.模糊查询传参
<select id="selectBykeyWord" parameterType="string" resultType="com.why.mybatis.entity.RoleEntity">
SELECT
*
FROM
t_role
WHERE
role_name LIKE CONCAT('%',#{keyword},'%')
OR
id LIKE CONCAT('%',#{keyword},'%')
OR
role_type LIKE CONCAT('%',#{keyword},'%')
</select>
2.decode()函数
使用decode判断字符串是否一样
decode(value,if1,then1,if2,then2,if3,then3,...,else)
含义为
IF 条件=值1 THEN
RETURN(value 1)
ELSIF 条件=值2 THEN
RETURN(value 2)
......
ELSIF 条件=值n THEN
RETURN(value 3)
ELSE
RETURN(default)
END IF
3.ROUND() 函数
ROUND(X): 返回参数X的四舍五入的一个整数。
mysql> SELECT ROUND(-1.23);
-> -1
mysql> SELECT ROUND(-1.58);
-> -2
mysql> SELECT ROUND(1.58);
-> 2
ROUND(X,D): 返回参数X的四舍五入的有 D 位小数的一个数字。如果D为0,结果将没有小数点或小数部分。
mysql> SELECT ROUND(1.298, 1);
-> 1.3
mysql> SELECT ROUND(1.298, 0);
-> 1
4.substr()截取字符串
用法:substr(string string,num start,num length);
select substr(参数1,参数2,参数3) from 表名
string为字符串;start为起始位置;length为长度。
注意:mysql中的start是从1开始的。
例子:(查出kename字段中第一次出现.之前的字符串)
select kename,substr(kename,1,locate('.',kename)) as subkename from web_dev_api where 1;
5.locate()查找字符串出现的位置
LOCATE(substr,str), LOCATE(substr,str,pos)
第一个语法返回substr在字符串str 的第一个出现的位置。第二个语法返回子符串 substr 在字符串str,从pos处开始的第一次出现的位置。如果substr 不在str 中,则返回值为0
SELECT LOCATE("u", "begtut.com") AS MatchPosition;
5
Comments | NOTHING