SQL:常用函数

发布于 2021-10-12  1084 次阅读


看见公司的代码有些函数没见过,特意学习了一下,做个记录——中科信息

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


欢迎欢迎~热烈欢迎~