Mysql 函数使用记录(二)——ELT()、FIELD()、IFNULL()

昨天在对一业务修改的过程中想到用DECODE()来实现效果,转眼发现目前使用的是Mysql库,经过查阅,最终用ELT()、FIELD()、IFNULL()函数来实现需求。现对其做一个记录。

语法:

ELT(n,str1,str2,str3,...) :如果n=1,则返回str1,如果n=2,则返回str2,依次类推。如果n小于1或大于参数个数,返回NULL。ELT()是FIELD()的功能补充函数。

mysql> SELECT ELT(3,‘hello‘,‘halo‘,‘test‘,‘world‘);
+--------------------------------------+
| ELT(3,‘hello‘,‘halo‘,‘test‘,‘world‘) |
+--------------------------------------+
| test                                 |
+--------------------------------------+
1 row in set

mysql>

FIELD(str,str1,str2,str,str3,str4...):返回str 在后面的参数列(str1,str2,str,str3,str4...)中的索引,起始索引为1。如果未在参数列中发现str 则返回0。

mysql> SELECT FIELD(‘halo‘,‘hello‘,‘halo‘,‘test‘,‘world‘);
+---------------------------------------------+
| FIELD(‘halo‘,‘hello‘,‘halo‘,‘test‘,‘world‘) |
+---------------------------------------------+
|                                           2 |
+---------------------------------------------+
1 row in set

mysql> 

IFNULL(expr1,expr2):如果expr1是NULL,则返回expr2,如果expr1不是NULL,则返回expr1。IFNULL()返回一个数字或字符串值,取决于它被使用的上下文环境。

mysql> SELECT IFNULL(NULL,8);
+----------------+
| IFNULL(NULL,8) |
+----------------+
|              8 |
+----------------+
1 row in set

mysql> SELECT IFNULL(‘hello‘,‘world‘);
+-------------------------+
| IFNULL(‘hello‘,‘world‘) |
+-------------------------+
| hello                   |
+-------------------------+
1 row in set
mysql> SELECT IFNULL(null,‘world‘);
+----------------------+
| IFNULL(null,‘world‘) |
+----------------------+
| world                |
+----------------------+
1 row in set
mysql> 

应用:

  如:订单记录中存储了该订单的来源类型编码,现需将其来源名称在页面列表中展示,来源信息并未单独建表存储,现需将查询语句做出修改以达到目的:

  在Oracle中我们可以用decode()函数来获取到来源名称:decode(条件,值1,返回值1,值2,返回值2...,缺省值);

  在Mysql中呢,我们需要ELT()、FIELD()来实现,必要的时候还会用到IFNULL()来实现最终效果。对于上述需求,我们可以采取以下sql来实现:

SELECT *,IFNULL(ELT(FIELD(type,‘1‘,‘2‘,‘3‘,‘4‘),‘来源A‘,‘来源B‘,‘来源C‘,‘来源D‘),‘未知‘) name from order;

记录完毕!^_^~

  

时间: 2024-11-06 15:29:47

Mysql 函数使用记录(二)——ELT()、FIELD()、IFNULL()的相关文章

Mysql 函数使用记录(一)——DATEDIFF、CONCAT

当目前为止呢,个人对Mysql的函数没有进行过统一的学习使用,都是用到了再去学习.而近日开始学习Linux了,所以为了防止这段时期结束后,将此阶段期间遇到的Mysql函数遗忘,开始在此对其做一个简单的记录. 昨天下班前朋友呢让帮忙看一个sql,是关于生日提醒的,实际应用中呢是要实现提前一天提醒用户生日,而sql呢是用来查询后一天要过生日的用户.在她原来的sql中用到了CONCAT.DATEDIFF函数,这两个函数呢我自个儿呢之前是没有用到过,所以在解决完问题之后在此记录一下用法及思路. 首先,来

MySQL函数学习笔记二:字符函数

1. 计算字符串字符数和字符串长度 - CHAR_LENGTH(s) CHAR_LENGTH(str): 返回str所包含的字符个数. mysql> select CHAR_LENGTH('MySQL'); +----------------------+ | CHAR_LENGTH('MySQL') | +----------------------+ |                    5 | +----------------------+ 2. 合并字符 - CONCAT(s1,s

MySQL数据库高级(二)——自定义函数

MySQL数据库高级(二)--自定义函数 一.自定义函数简介 自定义函数 (user-defined function UDF)是一种对MySQL扩展的途径,其用法和内置函数相同.自定义函数的两个必要条件:A.参数B.返回值(必须有).函数可以返回任意类型的值. 二.自定义函数的使用 1.自定义函数语法 CREATE?FUNCTION?function_name(parameter_nametype,[parameter_name type,...]) RETURNS?{STRING|INTEG

HeadFirst PHP&MySQL 重点知识点记录(二)

1.foreach语句用来循环处理一个数组,一次处理一个元素,而无需使用测试条件.在循环内部,可以访问这个数组的各个元素.(这点和JS的差不多)2.内置PHP isset()函数查看一个变量是否存在,这是指它是否已经赋值.empty()会确定一个变量是否包含空值(0.空串.false或NULL).3.include,include_once,require,require_once,这类PHP语句允许在应用中的多个脚本文件之间共享脚本代码,消除重复代码,使代码易于维护.4.$FILES 这个内置

mysql函数大全

mysql函数大全 对于针对字符串位置的操作,第一个位置被标记为1. ASCII(str) 返回字符串str的最左面字符的ASCII代码值.如果str是空字符串,返回0.如果str是NULL,返回NULL. mysql> select ASCII('2');    -> 50mysql> select ASCII(2);    -> 50mysql> select ASCII('dx');    -> 100也可参见ORD()函数. ORD(str) 如果字符串str最

MySQL函数大全及使用方法

mysql函数大全 一.字符串函数 CONCAT(s1,s2...,sn)返回来自于参数连结的字符串.如果任何参数是NULL,返回NULL.可以有超过2个的参数.一个数字参数被变换为等价的字符串形式. CONCAT_WS(sep,s1,s2...,sn)将s1,s2...,sn连接成字符串,并用sep字符间隔 QUOTE(str) 用反斜杠转义str中的单引号 STRCMP(s1,s2)比较字符串s1和s2 LTRIM(str) 返回删除了其前置空格字符的字符串str. 该函数对多字节是可靠的.

mysql函数全解析

本文摘自:http://www.cnblogs.com/cocos/archive/2011/05/06/2039469.html mysql函数大全 对于针对字符串位置的操作,第一个位置被标记为1.  ASCII(str)  返回字符串str的最左面字符的ASCII代码值.如果str是空字符串,返回0.如果str是NULL,返回NULL.  mysql> select ASCII('2');     -> 50 mysql> select ASCII(2);     -> 50

Mysql函数(全)

帮助文档下载链接---http://download.csdn.net/detail/pozmckaoddb/8999497 一. 控制流程函数 a)  CASE WHEN THEN 函数 语法: CASE value WHEN [compare-value] THEN result [WHEN [compare-value] THEN result --] [ELSE result ] END CASE WHEN [condition] THEN result [WHEN[condition]

【转】mysql函数

MySQL函数 MySQL数据库提供了很多函数包括: 数学函数: 字符串函数: 日期和时间函数: 条件判断函数: 系统信息函数: 加密函数: 格式化函数: 一.数学函数 数学函数主要用于处理数字,包括整型.浮点数等. 函数 作用 ABS(x) 返回x的绝对值 SELECT ABS(-1) -- 返回1 CEIL(x),CEILING(x) 返回大于或等于x的最小整数 SELECT CEIL(1.5) -- 返回2 FLOOR(x) 返回小于或等于x的最大整数 SELECT FLOOR(1.5)