常用 mysql函数查询

合理的利用sql函数,在特定情况下可以提高开发效率,缩短开发周期,把较复杂的业务逻辑放在sql上处理会让您的代码更简洁清晰。

  1. ASCII(str)  返回最左侧字符ASCII码值,如果str为0,返回0,如果是null,返回null。
  2. CONV(N,from_base,to_base)在2进制和36进制之间相互转化,任意一个参数为null,返回null,如果to_base为负数则N为当做有符号数,繁殖为无符号数。
  3. BIN(N) 返回N的二进制,N为长整数。
  4. CHAR(N,..)将参数解释为整数,返回ASCII码对应的字符。eg:CHAR(77,121,83,81,'76')            --->"MySQL"
  5. CONCAT(STR1,...) 组合字符串,如果有一个参数为null返回null ,数字参数会变成等价的字符串。eg:CONCAT("My","SQL")     --->MySQL   这个函数在项目中用到的比较多,把几个字段按照某种业务规则组合在一起,好处是在程序中可以很容易的拿到想要的结果。
  6. CHARACTER_LENGTH(STR) 返回字符串长度。
  7. POSITION(SUBSTR IN STR) 返回substr在str中第一次出现的位置,没有返回 0.
  8. LOCATE(SUBSTR,STR,POS) 返回substr在str中第一次出现的位置从pos开始,没有返回 0.
  9. LPAD(STR,LEN,PADSTR)返回str,在左侧用padstr填补,知道str为len长度 eg:SELECT  LPAD('HI',4,"??")   ----->"??HI".
  10. RPAD 填补右侧。
  11. FIND_IN_SET(STR,STRLIST) 返回str在strlist中的位置。 这个函数也运用的比较多,主要用来筛选特定的值 如:
    1. select FIND_IN_SET(distA.ENDDATE, rankData.SALLIST) AS ranking FROM F WHERE ranking BETWEEN 1 AND 2 /*取两期*/
  12. GROUP_CONCAT(b.date ORDER BY b.date DESC) 返回一个数组.
  13. IFNULL(exp1,exp2) exp1为null,返回exp2,否则返回exp1  如果你不想再程序中一遍又一遍的判断参数是否为null,请在源头就把它解决。
  14. IF(expr1,expr2,expr3)如果expr1为true,返回expr2,否则返回expr3 。  在特定的业务下,这个函数可以实现行转列。
  15. DATE("1911-10-10") 返回指定日期 (考考你 1911-10-10是什么日子?)。
  16. DATE_FORMAT(DATE,"%Y-%m-%d") 日期格式化。
  17. DATE_ADD(CURDATE(),INTERVAL-1,YEAR) 返回距离指定日期1年前的日期。

    使用update替换指定字段里的字符

        UPDATE your_table
        SET name=REPLACE(name, 'gbin1.com', 'gbtags.com')
        WHERE name LIKE '%John%';

    重设置指定table里的自动增加数值

    下一次插入数据,那么id自动增加为2
        ALTER TABLE your_table AUTO_INCREMENT = 2

    为select语句添加一个自动增加的字段列

        set @N = 0;
        SELECT @N := @N +1 AS number, name, surname FROM gbtags_users;

    使用全文索引并且匹配搜索

    select * from articles where MATCH(content_column) AGAINST ('music')

    从一个表插入另外一个表

        INSERT INTO yourtable (field1,field2,field3)
        SELECT newfield1,newfield2,'fixed value'
        FROM yourtable2

    sql中两个列的值互换
    update your_table t1 ,your_table t2 set t1.client_id=t2.target_comp_id ,t1.target_comp_id=t2.client_id where t1.target_comp_id='VE' and t1.id=t2.id  




    目前用过的就这么多了,记录下来分享给大家。(当然如果您有很高的性能要求请谨慎使用!)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值