盘点MySQL中比较实用的函数】的更多相关文章

之前小编在工作中遇到一些处理数据的问题,例如完成日期格式化,获取几天后的时间,生成指定格式的编码等问题,这时候小编经常会写一大堆逻辑代码来进行处理,还自己感觉自己很流弊的样子,后来却发现同事遇到相同的问题并没有写一大堆逻辑代码,好奇心下促使我偷偷的看了下同事的代码,才明白他们很喜欢使用sql中的函数直接处理了,大大减少了代码量,于是小编决定加强这方面的知识,多积累多看,把比较实用的一些sql函数列举出来,望指点一下. NO1: datediff函数 datediff函数返回两个日期之间的天数 语…
翻阅mysql手册时,看到有个示例使用了bit_or方法来去除重复的数据,一开始没看明白,后来看明白之后感觉非常巧妙.示例要实现的功能就是计算每月有几天有访问,先把示例摘录在这里. 1 2 3 4 5 6 7 -- 创建表 CREATE TABLE t1 (year YEAR(4), month INT(2) UNSIGNED ZEROFILL,              day INT(2) UNSIGNED ZEROFILL);   -- 插入测试数据 INSERT INTO t1 VALU…
(1)mysql replace 函数 语法:replace(object,search,replace) 意思:把object中出现search的全部替换为replace 案例:update `news` set `content`=replace(`content`,' ','');//清除news表中content字段中的空格 (2)mysql trim 函数 完整格式:TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str)简化格式:TR…
一.MySQL 获得当前日期时间 函数 1.1 获得当前日期+时间(date + time)函数:now() mysql> select now(); +---------------------+ | now() | +---------------------+ | 2015-01-22 22:20:46 | +---------------------+ 除了 now() 函数能获得当前的日期时间外,MySQL 中还有下面的函数: current_timestamp() ,current_…
From: http://www.cnblogs.com/redfox241/archive/2009/07/23/1529092.html 一.MySQL 获得当前日期时间 函数 1.1 获得当前日期+时间(date + time)函数:now() mysql> select now(); +---------------------+| now()               |+---------------------+| 2008-08-08 22:20:46 |+----------…
MySQL Date 函数 下面的表格列出了 MySQL 中最重要的内建日期函数: 函数 描述 NOW() 返回当前的日期和时间 CURDATE() 返回当前的日期 CURTIME() 返回当前的时间 DATE() 提取日期或日期/时间表达式的日期部分 EXTRACT() 返回日期/时间按的单独部分 DATE_ADD() 给日期添加指定的时间间隔 DATE_SUB() 从日期减去指定的时间间隔 DATEDIFF() 返回两个日期之间的天数 DATE_FORMAT() 用不同的格式显示日期/时间…
这里主要介绍mysql丰富的内置函数. 数学函数 数学函数相对比较简单,就是涉及一些数值的计算,这里列出数学函数的功能,仅个别给出实例. 函数 作 用 ABX(x) 返回x的绝对值 CEIL(X),CEILING(x) 返回大于或等于x的最小整数 FLOOR(X) 返回小于或等于x的最大整数 RAND() 返回0~1的随机数 RAND(X) 返回0~1的随机数,x值相同时,返回的随机数相同 SIGN(x) 返回x的符号,负数,0,正数对应的符号分为-1,0,1 PI() 返回圆周率 TRUNCA…
MySQL中的field()函数,可以用来对SQL中查询结果集进行指定顺序排序. 函数使用格式如下: order by (str,str1,str2,str3,str4……),str与str1,str2,str3,str4比较,其中str指的是字段名字, 意为:字段str按照字符串str1,str2,str3,str4的顺序返回查询到的结果集.如果表中str字段值不存在于str1,str2,str3,str4中的记录,放在结果集最前面返回. 例: 表数据如下: root@localhost|ir…
有一些程序,虽然写起来不难,但是可能比较麻烦或容易出错,这时就可以用c++函数库里自带的一些实用的函数. 这里只记录一些不太常见的函数. -------------------------------------!持续更新!----------------------------------------------------- --------------------------------------正文分界线-----------------------------------------…
博主原创,转载请注明出处: 在mysql中if()函数的用法类似于java中的三目表达式,其用处也比较多,具体语法如下: IF(expr1,expr2,expr3),如果expr1的值为true,则返回expr2的值,如果expr1的值为false, 则返回expr3的值. 其经常判断查询出来的值,示例: mysql> ,'女','男') as sex from student; +-------+-----+ | name | sex | +-------+-----+ | name1 | 女…
一.对待存储过程和函数的态度 在实际项目中应该尽量少用存储过程和函数,理由如下: 1.移植性差,在MySQL中的存储过程移植到sqlsever上就不一定可以用了. 2.调试麻烦,在db中报一个错误和在应用层报一个错误不是一个概念,那将是毁灭性打击,直接一个error:1045什么的更本毫无头绪. 3.扩展性不高. 所以在互联网时代大型项目应该尽量少使用(不使用)存储过程和函数. 二.创建存储过程 2.1什么是存储过程? 存储过程和存储函数都是一组sql语句的集合.这些语句集合被当做一个整体存入数…
存储过程和函数 简单的说,存储过程就是一条或者多条SQL语句的集合.可以视为批文件,但是其作用不仅仅局限于批处理.本文主要介绍如何创建存储过程和存储函数,以及如何调用.查看.修改.删除存储过程和存储函数等. 创建存储过程和函数 存储程序分为存储过程和存储函数.Mysql创建存储过程和存储函数的语句分别为CREATE PROCEDURE和CREATE FUNCTION.使用CALL语句来调用存储过程,只能用输出变量返回值.存储函数可以从语句外调用(通过引用函数名),也能返回标量值.存储过程也可以调…
一.mysql中的GROUP BY和HAVINGGROUP BY常见的是和聚合函数(SUM,MIN,MAX,COUNT)搭配使用. 比如:SELECT category,SUM(money) AS `total` FROM user_money GROUP BY category;按类别分组统计user_money表每个类别总计有多少money 现在如果增加个条件,需要统计每个类别中支出的money总量,比如rule=1为支出,则改写语句为SELECT category,SUM(money) A…
一.对待存储过程和函数的态度 优点: 1.存储过程只在创建时进行编译,sql语句则每次执行都需要编译.能提高数据库执行速度. 2.简单复杂操作结合事物一起封装. 3.复用性高. 4.安全性高,可指定存储过程的使用权. 在实际项目中应该尽量少用存储过程和函数,理由如下: 1.移植性差,在MySQL中的存储过程移植到sqlsever上就不一定可以用了. 2.调试麻烦,在db中报一个错误和在应用层报一个错误不是一个概念,那将是毁灭性打击,直接一个error:1045什么的更本毫无头绪. 3.扩展性不高…
最近使用mysql开发一个项目,发现没有像之前在用oracle数据中那样有to_date方法.mysql中实现日期格式化的方法为date_to_str('日期字符串','日期格式'),而且mysql中的日期格式的写法和oracle也不同. mysql中用法为:str_to_date('2012-05-01 23:59:59','%Y-%m-%d %T') %Y:代表4位的年份 %y:代表2为的年份 %m:代表月, 格式为(01……12)  %c:代表月, 格式为(1……12) %d:代表月份中的…
MySQL空间扩展不仅提供了空间数据的存储能力,而且还具备一些空间运算能力,这些功能通过MySQL内建的几何函数实现.最简单的几何函数昨天已经有所涉及,也就是转换WTK的GEOMFROMTEXT和ASTEXT.除此以外,不同的几何对象还具有不同的功能函数. 几何类的函数DIMENSION,返回对象的尺寸,-1为空,0为点(没有长度没有面积),1为线(有长度而没有面积),2为多边形(有面积):ENVELOPE,返回最小边界矩形:GEOMERYTYPE,返回几何类型(字符串)SRID,所谓SRID是…
1.曾有这样的需求: 可以使用如下函数: 语法:FIND_IN_SET(str,strlist). 定义: 1. 假如字符串str在由N子链组成的字符串列表strlist中,则返回值的范围在1到N之间. 2. 一个字符串列表就是一个由一些被‘,’符号分开的自链组成的字符串. 3. 如果第一个参数是一个常数字符串,而第二个是typeSET列,则FIND_IN_SET()函数被优化,使用比特计算. 4. 如果str不在strlist或strlist为空字符串,则返回值为0. 5. 如任意一个参数为N…
引语:mysql作为数据库的一大主力军,到处存在于我们各种系统中,相信大家都不陌生!但是,你知道你能用不代表你知道细节,那我们就来盘点盘点其中一些我们平时不太注意的地方,一来为了有趣,二来为了不让自己踩坑. 声明:要想知道细节,那就去阅读源码,我实在没那本事,只能从片面上来说一些事! 1. 不区分大小写(字段名) mysql的查询字段名不区分大小写,但是查询的内容是要区分大小写的,所以能用下划线命名的就不要用大小写来区分命名了,如: SELECT uid,v_state FROM all_use…
在写SQL时,经常灵活运用一些SQL语句编写的技巧,可以大大简化程序逻辑.减少程序与数据库的交互次数,有利于数据库高可用性,同时也能显得你的SQL很牛B,让同事们眼前一亮. 目录 实用的SQL 1.插入或替换 2.插入或更新 3.插入或忽略 4.SQL中的if-else判断语句 5.指定数据快照或备份 6.写入查询结果集 7.强制使用指定索引 心得体会: (续)评论区问题反馈 @当年经理的SQL @修改后最终版SQL @最终版SQL原理 高能预警,这是一篇干货满满的MySQL技术文章,总有一天,…
1.查询时需要转换类型,大多发生在数字和字符串.时间和字符串之间 Mysql提供了两个个类型转换函数:CAST和CONVERT CAST() 和CONVERT() 函数可用来获取一个类型的值,并产生另一个类型的值. 这个类型 可以是以下值其中的 一个: BINARY[(N)] CHAR[(N)] DATE DATETIME DECIMAL SIGNED [INTEGER] TIME UNSIGNED [INTEGER] 例如: SELECT DISTINCT ctd.userId FROM ca…
写在分割线之前,个人以为,数据库应该具备简单的的数据加工能力.如同食品在吃之前,是要经过很多到工序的,有经过初加工.粗加工.精加工.深加工等.那么mysql也应该并必须担任起数据初加工以及粗加工的责任.不能让所有数据处理的工作都交给PHP去做.这样不仅使程序冗余而且效率底下. 可能有的朋友会担心mysql的性能不行,数据处理的任务分隔到mysql上会使mysql的压力增大.私以为这是不足担心的,mysql虽然性能不高,但足以支持中小规模的公司使用. 1.char_length(str); 2.c…
在MySQL应用时,经常要使用这两个函数TIMESTAMPDIFF和TIMESTAMPADD. 一,TIMESTAMPDIFF 语法: TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2). 说明: 返回日期或日期时间表达式datetime_expr1 和datetime_expr2the 之间的整数差.其结果的单位由interval 参数给出.该参数必须是以下值的其中一个: FRAC_SECOND.表示间隔是毫秒 SECOND.秒 MINU…
DAYOFWEEK(date)返回日期date的星期索引(1=星期天,2=星期一, ……7=星期六).这些索引值对应于ODBC标准.mysql> select DAYOFWEEK('1998-02-03');-> 3 DAYOFMONTH(date)返回date的月份中日期,在1到31范围内.mysql> select DAYOFMONTH('1998-02-03');-> 3 DAYOFYEAR(date)返回date在一年中的日数, 在1到366范围内.mysql> se…
一.字符串函数 select concat(name,"age is",age) from users;  insert(str,x,y,insert)//将字符串x位置开始y个位置替换成insert select  lower(str) upper(str)//转化大小写 select * from user where upper(name)='AAA'; left (str ,x) right(str,x)//分别返回左边和右边的x个字符 select left ("a…
MySQL里面的length函数是一个用来获取字符串长度的内置函数,一个汉字是算三个字符,中文的标点符号也是算三个字符,一个数字或字母算一个字符.具体用法示例如下: 1.查看某字符串的长度 SELECT LENGTH('www.baidu.com') FROM DUAL; MySQL文档中对于dual表的解释:You are allowed to specify DUAL as a dummy table name in situations where no tables are refere…
用mysql客户端在库中建立函数queryOrgChildren(查找子节点)和queryOrgLevel(查看当前节点在树中的级别):DROP FUNCTION IF EXISTS `queryOrgChildren`;CREATE  FUNCTION `queryOrgChildren`(id INT) RETURNS varchar(2000)BEGINDECLARE tempChd VARCHAR(2000); SET tempChd = cast(id as char);IF temp…
1. 常见数据库注入函数: MYSQL: and length((user))>10 ACCESS: and (select count() from MSysAccessObject)>0 MSSQL: and (select count()from sysobjects)>0 ORDER BY句子: select id,username,password from users where id = 1 order by 1,2,3,4依次测试,从而判断有几列存在,得知列数,拿unio…
一  FIND_IN_SET() SELECT * from u_user where FIND_IN_SET('32',tags) 上面的sql是精确查找,查找表中tags中含有32的记录(注意这里的含有不是说13268这样也是含有,而是23,32,35,36这样才是含有),只有当tags这一列中记录是用逗号分开中的tags含有32.不能够说查找("32,33",tags)这种写法是查不到上面的结果,例如 这样的字段:  9791, 2336, 726, 728, 1466, 684…
MySQL中有5个函数需要计算当前时间的值: NOW.返回时间,格式如:2012-09-23 06:48:28 CURDATE,返回时间的日期,格式如:2012-09-23 CURTIME,返回时间,格式如:06:48:28 UNIX_TIMESTAMP,返回时间整数戳,如:1348408108 SYSDATE,返回时间,格式和time()函数返回时间一样,但是有区别. 除了本身定义所返回的区别以外,另一个区别是:前四个函数都是返回基于语句的开始执行时间,而SYSDATE返回time的值. 通过…
<table id="table"> <tr> <th>用户ID</th> <th>用户名</th> <th>手机号码</th> <th>状态</th> <th>操作</th> </tr> <tr> <td>zhangsan</td> <td>张三</td> <td&…