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…
(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…
应用场景:将数据表TB_USER中字段NNDP的内容中为[sannanyinv]转换为[3男1女] 主要脚本:一个游标脚本+分割字符串函数+拼音转数字脚本 操作步骤如下: 1.创建类型 create or replace type splitTable is table of varchar2(100); 2.创建函数fn_splitString(功能是将字符串分割成多条记录)--测试语句select * from table(fn_splitString('ernanyinv','nan'))…
翻阅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…
一.MySQL 获得当前日期时间 函数 1.1 获得当前日期+时间(date + time)函数:now() mysql> select now(); +---------------------+ | now() | +---------------------+ | 2015-01-22 22:20:46 | +---------------------+ 除了 now() 函数能获得当前的日期时间外,MySQL 中还有下面的函数: current_timestamp() ,current_…
mysql中判断字段为null或者不为null   在mysql中,查询某字段为空时,切记不可用 = null, 而是 is null,不为空则是 is not null   select nulcolumn from table; if nuncolumn is null then  select 1; else  select 2; end if;   执行存储过程 调用过程:call sp_add (1,2,@a);select @a;…
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中更新字段的部分值,更新某个字符串字段的部分内容 sql语句如下: update goods set img = REPLACE(img,'http://ozwm3lwui.bkt.clouddn.com','http://imgs.lqjava.com') where img like 'http://ozwm3lwui.bkt.clouddn.com%' 如上,将字符串中 http://ozwm3lwui.bkt.clouddn.com/8f86f9d55d314720a2ada…
SELECT *from 表名WHERE 字段 COLLATE Chinese_PRC_CS_AS LIKE '%[abcdefghijklmnopqrstuvwxyz]%'筛选表中指定字段包含26某个小写字母…
mysql中时间字段datetime怎么判断为空和不为空一般为空都用null表示,所以一句sql语句就可以.select * from 表名 where 日期字段 is null;这里要注意null的用法,不可以用=null这样的形式表示.相反,要取出不为空的数据,就是is trueselect * from 表名 where 日期字段 is true;…
mysql 替换字符串的实现方法: mysql中replace函数直接替换mysql数据库中某字段中的特定字符串,不再需要自己写函数去替换,用起来非常的方便. mysql 替换函数replace() UPDATE `table_name` SET `field_name` = replace (`field_name`,'from_str','to_str') WHERE `field_name` LIKE '%from_str%' 说明: table_name —— 表的名字 field_na…
亲测实例: 1级排序:同城>异城 2级排序:未领养>以领养 3级排序:发布最新靠前 MYSQL语句如下: SELECT ura.id,ura.city,ura.uid,ura.rescue_name,ura.address,pa.status as pet_adopt_status,pa.name as pet_adopt_name,pa.add_time as pet_adopt_add_time ) ,,,,)) ORDER BY FIELD(ura.city,'深圳') DESC,pa.…
在日常开发过程中,排序是经常用到的,有时候有这样的需求. 比如,需要在查询结果中根据某个字段的具体值来排序.如下面例子 上面是一张个人信息 表,假如我们想按照'seiki','iris','xut'来排序.也就是name='seiki','iris','xut'的来排序. 碰到这样的需求,我们应该怎么做呢,其实有一个MySQL函数可以非常方便的处理此需求 那就是field()函数 使用方式如下 其中,order by (str,str1,str2,str3,str4……),str与str1,st…
1.concat()函数 2.concat_ws()函数 3.group_concat()函数 操作的table select * from test_concat order by id limit 5; 1.concat()函数 功能:将多个字符串连接成一个字符串. 语法:concat(str1, str2,...),返回结果为连接参数产生的字符串,如果有任何一个参数为null,则返回值为null. 3.举例: select concat(area,fr,best_history_data)…
问题描述 大家都知道, MySQL 中按某字段升序排列的 SQL 为 (以 id 为例, 下同): SELECT * FROM `MyTable` , , , ) ORDER BY `id` ASC 降序排列的 SQL 为: SELECT * FROM `MyTable` , , , ) ORDER BY `id` DESC 有时以上排序并不能满足我们的需求. 例如, 我们想要按 id 以 5, 3, 7, 1 的顺序排列, 该如何实现. 这也是很多国内外同行经常遇到的问题之一. 下面我们给出按…
问题描述 大家都知道, mysql 中按某字段升序排列的 SQL 为 (以 id 为例, 下同): SELECT * FROM `MyTable` WHERE `id` IN (1, 7, 3, 5) ORDER BY `id` ASC 降序排列的 SQL 为: SELECT * FROM `MyTable` WHERE `id` IN (1, 7, 3, 5) ORDER BY `id` DESC 有时以上排序并不能满足我们的需求. 例如, 我们想要按 id 以 5, 3, 7, 1 的顺序排…
MySQL可以通过field()函数自定义排序,格式:field(value,str1,str2,str3,str4),value与str1.str2.str3.str4比较,返回1.2.3.4,如遇到null或者不在列表中的数据则返回0. mysql> select * from driver_log order by field(name,'Suzi','Ben','Henry'); +--------+-------+------------+-------+ | rec_id | nam…
使用mysqldump把mysql数据库的数据导出到文件中还是挺方便的:比如说要导出baijunyao数据库: // mysqldump -u用户名 -p 数据库名 [表名]> 导出的文件名 mysqldump -uroot -p baijunyao > baijunyao.sql Bash Copy 导出baijunyao数据库中的users表: mysqldump -uroot -p baijunyao users > baijunyao.sql Bash Copy 但是有时候当表的…
用locate 是最快的,like 最慢.position一般实战例子:select * from historydatawhere locate('0',opennum) and locate('1',opennum)order by number desc limit 10; 方法一:locate(字符,字段名)使用locate(字符,字段名)函数,如果包含,返回>0的数,否则返回0 , 它的别名是 position inselect * from 表名 where locate(字符,字段…
这里主要介绍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…
之前小编在工作中遇到一些处理数据的问题,例如完成日期格式化,获取几天后的时间,生成指定格式的编码等问题,这时候小编经常会写一大堆逻辑代码来进行处理,还自己感觉自己很流弊的样子,后来却发现同事遇到相同的问题并没有写一大堆逻辑代码,好奇心下促使我偷偷的看了下同事的代码,才明白他们很喜欢使用sql中的函数直接处理了,大大减少了代码量,于是小编决定加强这方面的知识,多积累多看,把比较实用的一些sql函数列举出来,望指点一下. NO1: datediff函数 datediff函数返回两个日期之间的天数 语…
order by排序是最常用的功能,但是排序有时会遇到数据为空null的情况,这样排序就会乱了,这里以MySQL为例,记录我遇到的问题和解决思路. 问题: 网页要实现table的行鼠标拖拽排序,我用AngularJs集成了一个TableDnD开源插件,可以实现,然后在数据库表中增加一个排序字段indexId,但是原来的大量数据是没有排序过的,所以该字段为null. 这样order by时,为null的数据就会排在最前边. 写个测试表模拟一下,如下效果: 解决办法: 最优办法:利用MySQL中的一…
1. 需要在php数组中用中文排序,但是一般使用utf8格式的文件,直接用asort排序不行.用gbk和gb2312可以.这跟几种格式的编码有关系.gbk和gb2312本身的编码就是用拼音排序的. 代码如下 复制代码 function utf8_array_asort(&$array){if(!isset($array) || !is_array($array)){return false;}foreach($array as $k=>$v){$array[$k] = iconv('UTF-…
存储过程和函数 简单的说,存储过程就是一条或者多条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中的ORDER BY有两种排序实现方式: 1. 利用有序索引获取有序数据 2. 文件排序 在explain中分析查询的时候,利用有序索引获取有序数据显示Using index ,文件排序显示 Using filesort. 只有当ORDER BY中所有的列必须包含在相同的索引,并且索引的顺序和order by子句中的顺序完全一致,并且所有列的排序方向(升序或者降序)一样才有,(混合使用ASC模式和DESC模式则不使用索引) where语句 与 order by 语句组合满足最左前缀…
背景 熟悉mysql的同学应该清楚,mysql在对字符串做order by排序时是按照字典序进行排序的,但是如果字符串中包含数字的话(我们称这种类型的字符串为alphanumeric),仅按照字典序的排序结果对用户不太友好.我们举个例子,假设我们在mysql中存了一张files表,里面记录了文件的id以及文件的name,表里的数据如下: id name 1 1测试2 2 测试 3 1 4 1测试12 5 1测试1 6 1测试20 name字段目前是乱序的,现在我们对该表执行order by查询,…
MySQL Date 函数 下面的表格列出了 MySQL 中最重要的内建日期函数: 函数 描述 NOW() 返回当前的日期和时间 CURDATE() 返回当前的日期 CURTIME() 返回当前的时间 DATE() 提取日期或日期/时间表达式的日期部分 EXTRACT() 返回日期/时间按的单独部分 DATE_ADD() 给日期添加指定的时间间隔 DATE_SUB() 从日期减去指定的时间间隔 DATEDIFF() 返回两个日期之间的天数 DATE_FORMAT() 用不同的格式显示日期/时间…
mysql5.7.8之后开始原生支持json. 在类似mongodb这种nosql数据库中,json存储数据是非常自然的, 在mysql中合理的使用json,能够带来极大的便利 Json字段的使用场景 在读laravel手册举例子时,我们经常会看到 $user->is_admin 来判断用户是否为管理员,但是在用户表中,admin往往只占很小一部分.如果单开一个is_admin字段是很没有必要的行为.数据库中会有大量的无意义数据存储, 我们可以为user表创建一个 json 字段,来存储我们的i…