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最左面字符是一个多字节字符,通过以格式((first byte ASCII code)*256+(second byte ASCII code))[*256+third byte ASCII code...]返 回字符的ASCII代码值来返回多字节字符代码。如果最左面的字符不是一个多字节字符。返回与ASCII()函 数返回的相同值。
mysql> select ORD('2');-> 50CONV(N,from_base,to_base)在不同的数字基之间变换数字。返回数字N的字符串数字, 从from_base基变换为to_base基,如果任何参数是NULL, 返回NULL。参数N解 释为一个整数,但是可以指定为一个整数或一个字符串。最小基是2且最大的基 是36。如果to_base是 一个负数,N被认为是一个有符号数,否则,N被当作无符号数。 CONV以 64位点精度工作。
mysql> select CONV("a",16,2);-> '1010'mysql> select CONV("6E",18,8);-> '172'mysql> select CONV(-17,10,-18);-> '-H'mysql> select CONV(10+"10"+'10'+0xa,10,10);-> '40'BIN(N)返回二进制值N的一个字符串表示,在此N是一个长整数(BIGINT) 数字,这等价于CONV(N,10,2)。如果N是NULL,返回NULL。
mysql> select BIN(12);-> '1100'OCT(N)返回八进制值N的一个字符串的表示,在此N是一个长整型数字,这等价于CONV(N,10,8)。 如果N是NULL,返回NULL。
mysql> select OCT(12);-> '14'HEX(N)返回十六进制值N一个字符串的表示,在此N是一个长整型(BIGINT) 数字,这等价于CONV(N,10,16)。如果N是NULL,返回NULL。
mysql> select HEX(255);-> 'FF'CHAR(N,...)CHAR()将参数解释为整数并且返回 由这些整数的ASCII代码字符组成的一个字符串。NULL值 被跳过。
mysql> select CHAR(77,121,83,81,'76');-> 'MySQL'mysql> select CHAR(77,77.3,'77.3');-> 'MMM'CONCAT(str1,str2,...)返回来自于参数连结的字符串。如果任何参数是NULL, 返回NULL。可以有超过2个的参数。一个数字参数被变换为等价的字符串形 式。
mysql> select CONCAT('My', 'S', 'QL');-> 'MySQL'mysql> select CONCAT('My', NULL, 'QL');-> NULLmysql> select CONCAT(14.3);-> '14.3'LENGTH(str)  OCTET_LENGTH(str)  CHAR_LENGTH(str)  CHARACTER_LENGTH(str)返回字符串str的长度。
mysql> select LENGTH('text');-> 4mysql> select OCTET_LENGTH('text');-> 4注意,对于多字节字符,其CHAR_LENGTH()仅计算一次。
LOCATE(substr,str)  POSITION(substr IN str)返回子串substr在字符串str第一个出现的位置,如果substr不 是在str里面,返回0.
mysql> select LOCATE('bar', 'foobarbar');-> 4mysql> select LOCATE('xbar', 'foobar');-> 0该函数是多字节可靠的。 LOCATE(substr,str,pos)返回子串substr在字符串str第一个出现的位置,从位置pos开 始。如果substr不是在str里 面,返回0。
mysql> select LOCATE('bar', 'foobarbar',5);-> 7这函数是多字节可靠的。
INSTR(str,substr)返回子串substr在字符串str中的第一个出现的位置。这与有2个参数形式的LOCATE()相 同,除了参数被颠倒。
mysql> select INSTR('foobarbar', 'bar');-> 4mysql> select INSTR('xbar', 'foobar');-> 0这函数是多字节可靠的。
LPAD(str,len,padstr)返回字符串str,左面用字符串padstr填补直到str是len个字符长。
mysql> select LPAD('hi',4,'??');-> '??hi'RPAD(str,len,padstr)返回字符串str,右面用字符串padstr填补直到str是len个字符长。  
mysql> select RPAD('hi',5,'?');-> 'hi???'LEFT(str,len)返回字符串str的最左面len个字符。
mysql> select LEFT('foobarbar', 5);-> 'fooba'该函数是多字节可靠的。
RIGHT(str,len)返回字符串str的最右面len个字符。
mysql> select RIGHT('foobarbar', 4);-> 'rbar'该函数是多字节可靠的。
SUBSTRING(str,pos,len)  SUBSTRING(str FROM pos FOR len)  MID(str,pos,len)从字符串str返回一个len个字符的子串,从位置pos开 始。使用FROM的变种形式是ANSI SQL92语法。
mysql> select SUBSTRING('Quadratically',5,6);-> 'ratica'该函数是多字节可靠的。
SUBSTRING(str,pos)  SUBSTRING(str FROM pos)从字符串str的起始位置pos返回一个子串。
mysql> select SUBSTRING('Quadratically',5);-> 'ratically'mysql> select SUBSTRING('foobarbar' FROM 4);-> 'barbar'该函数是多字节可靠的。
SUBSTRING_INDEX(str,delim,count)返回从字符串str的第count个出现的分 隔符delim之后的子串。如果count是正数,返回最后的分隔符到左边(从左边数) 的所有字符。如果count是负数,返回最后的分隔符到右边的所有字符(从右边数)。
mysql> select SUBSTRING_INDEX('www.mysql.com', '.', 2);-> 'www.mysql'mysql> select SUBSTRING_INDEX('www.mysql.com', '.', -2);-> 'mysql.com'该函数对多字节是可靠的。
LTRIM(str)返回删除了其前置空格字符的字符串str。
mysql> select LTRIM('  barbar');-> 'barbar'RTRIM(str)返回删除了其拖后空格字符的字符串str。
mysql> select RTRIM('barbar   ');-> 'barbar'该函数对多字节是可靠的。 TRIM([[BOTH | LEADING | TRAILING] [remstr] FROM] str)返回字符串str,其所有remstr前缀或后缀被删除了。如果没有修饰符BOTH、LEADING或TRAILING给 出,BOTH被假定。如果remstr没 被指定,空格被删除。
mysql> select TRIM('  bar   ');-> 'bar'mysql> select TRIM(LEADING 'x' FROM 'xxxbarxxx');-> 'barxxx'mysql> select TRIM(BOTH 'x' FROM 'xxxbarxxx');-> 'bar'mysql> select TRIM(TRAILING 'xyz' FROM 'barxxyz');-> 'barx'该函数对多字节是可靠的。
SOUNDEX(str)返回str的一个同音字符串。听起来“大致相同”的2个 字符串应该有相同的同音字符串。一个“标准”的同音字符串长是4个字符,但是SOUNDEX()函 数返回一个任意长的字符串。你可以在结果上使用SUBSTRING()得到 一个“标准”的 同音串。所有非数字字母字符在给定的字符串中被忽略。所有在A-Z之外的字符国际字母被当作元音。
mysql> select SOUNDEX('Hello');-> 'H400'mysql> select SOUNDEX('Quadratically');-> 'Q36324'SPACE(N)返回由N个空格字符组成的一个字符串。
mysql> select SPACE(6);-> '      'REPLACE(str,from_str,to_str)返回字符串str,其字符串from_str的所有出现由字符串to_str代 替。
mysql> select REPLACE('www.mysql.com', 'w', 'Ww');-> 'WwWwWw.mysql.com'该函数对多字节是可靠的。
REPEAT(str,count)返回由重复countTimes次的字符串str组成的一个字符串。如果count <= 0,返回一个空字符串。如果str或count是NULL, 返回NULL。
mysql> select REPEAT('MySQL', 3);-> 'MySQLMySQLMySQL'REVERSE(str)返回颠倒字符顺序的字符串str。
mysql> select REVERSE('abc');-> 'cba'该函数对多字节可靠的。
INSERT(str,pos,len,newstr)返回字符串str,在位置pos起始的子串且len个 字符长得子串由字符串newstr代替。
mysql> select INSERT('Quadratic', 3, 4, 'What');-> 'QuWhattic'该函数对多字节是可靠的。
ELT(N,str1,str2,str3,...)如果N= 1,返回str1,如 果N= 2, 返回str2,等等。如果N小 于1或大于参数个数,返回NULL。ELT()是FIELD()反 运算。
mysql> select ELT(1, 'ej', 'Heja', 'hej', 'foo');-> 'ej'mysql> select ELT(4, 'ej', 'Heja', 'hej', 'foo');-> 'foo'FIELD(str,str1,str2,str3,...)返回str在str1, str2, str3, ...清 单的索引。如果str没找到,返回0。FIELD()是ELT()反运算。
mysql> select FIELD('ej', 'Hej', 'ej', 'Heja', 'hej', 'foo');-> 2mysql> select FIELD('fo', 'Hej', 'ej', 'Heja', 'hej', 'foo');-> 0FIND_IN_SET(str,strlist)如果字符串str在由N子串组成的表strlist之 中,返回一个1到N的 值。一个字符串表是被“,”分隔的子串组成的一个字符串。如果第一个参数是 一个常数字符串并且第二个参数是一种类型为SET的列,FIND_IN_SET()函数被优化而使用位运算!如果str不是在strlist里 面或如果strlist是空字符串,返回0。如果任何一个参数是NULL, 返回NULL。如果第一个参数包含一个“,”,该函数将工作不正常。
mysql> SELECT FIND_IN_SET('b','a,b,c,d');-> 2MAKE_SET(bits,str1,str2,...)返回一个集合 (包含由“,”字符分隔的子串组成的一个 字符串),由相应的位在bits集合中的的字符串组成。str1对应于位0,str2对 应位1,等等。在str1, str2, ...中 的NULL串不添加到结果中。
mysql> SELECT MAKE_SET(1,'a','b','c');-> 'a'mysql> SELECT MAKE_SET(1 | 4,'hello','nice','world');-> 'hello,world'mysql> SELECT MAKE_SET(0,'a','b','c');-> ''EXPORT_SET(bits,on,off,[separator,[number_of_bits]])返回一个字符串,在这里对于在“bits”中设定每一位,你得到一个“on”字符串,并且对于每个复位(reset)的位,你得到一个 “off”字符串。每个字符串用“separator”分隔(缺省“,”),并且只有“bits”的“number_of_bits” (缺省64)位被使用。
mysql> select EXPORT_SET(5,'Y','N',',',4)-> Y,N,Y,N LCASE(str)  LOWER(str)返回字符串str,根据当前字符集映射(缺省是ISO- 8859-1 Latin1)把所有的字符改变成小写。该函数对多字节是可靠的。
mysql> select LCASE('QUADRATICALLY');-> 'quadratically'UCASE(str)  UPPER(str)返回字符串str,根据当前字符集映射(缺省是ISO- 8859-1 Latin1)把所有的字符改变成大写。该函数对多字节是可靠的。
mysql> select UCASE('Hej');-> 'HEJ'该函数对多字节是可靠的。
LOAD_FILE(file_name)读入文件并且作为一个字符串返回文件内容。文件必须在服务器上,你必须指定到文件的完整路径名,而且你必须有file权 限。文件必须所有内容都是可读的并且小于max_allowed_packet。 如果文件不存在或由于上面原因之一不能被读出,函数返回NULL。
mysql> UPDATE table_nameSET blob_column=LOAD_FILE("/tmp/picture")WHERE id=1;MySQL必要时自动变换数字为字符串,并且反过来也如此:
mysql> SELECT 1+"1";-> 2mysql> SELECT CONCAT(2,' test');-> '2 test'如果你想要明确地变换一个数字到一个字符串,把它作为参数传递到CONCAT()。
如果字符串函数提供一个二进制字符串作为参数,结果字符串也是一个二进制字符串。被变换到一个字符串的数字被当作是一个二进制字符串。这仅影响比 较。

转载于:https://www.cnblogs.com/ITlearning/p/3175727.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/350040.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 转储快照分析_分析Java核心转储

java 转储快照分析在本文中&#xff0c;我将向您展示如何调试Java核心文件&#xff0c;以查看导致JVM崩溃的原因。 我将使用在上一篇文章&#xff1a; 生成Java Core Dump中生成的核心文件。 您可以通过以下几种方法来诊断JVM崩溃&#xff1a; hs_err_pid日志文件 当JVM中发生…

zbox mysql_20190213云服务器部署禅道

1.系统环境&#xff1a;腾讯云服务器&#xff1b;Centos 7.02.工具&#xff1a;禅道的压缩包(需要是tar.gz文件名的)、Xshell、Xftp&#xff1b;3.安全组规则的设置&#xff1b;4.端口号的设置以下为详细步骤&#xff1a;需要在空白的服务器上去进行操作。还需要再琢磨的。1、x…

Java编程语言的历史和未来

通过AppDynamics解决应用程序问题的速度提高了10倍–以最小的开销在代码级深度监视生产应用程序。 开始免费试用&#xff01; 作为Internet上著名的编程语言 &#xff0c;Java对人们如何浏览数字世界产生了深远的影响。 Java功能设置了用户对他们访问互联网的设备的性能期望的…

fmdb和mysql的区别_FMDB

什么是数据库数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,我们可以很方便的对数据库中的数据进行增、删、改、查操作数据库类型数据库可以分为2大种类关系型数据库(主流)关系型数据库(主流)对象型数据库常用关系型数据库PC端&#xff1a;Oracle、MySQL、SQL S…

RabbiqMQ快速入门

RabbitMQ 官网地址: https://www.rabbitmq.com/ 一个遵循AMQP协议&#xff0c;开源面向消息的中间件,支持多种编程语言。 Rabbitmq 能做什么? 逻辑解耦&#xff0c;异步的消息任务消息持久化&#xff0c;重启不影响削峰&#xff0c;大规模的消息处理主要的特点 可靠性&#xf…

Java命令行界面(第13部分):JArgs

JArgs 1.0的区别在于&#xff0c;这是我的第13篇文章的主题&#xff0c;该文章是关于Java命令行参数解析的。 JArgs是一个开放源代码&#xff08; BSD许可证 &#xff09;库&#xff0c;主要由Steve Purcell和Ewan Mellor等 不同的贡献者支持。 事实证明&#xff0c;这在第一次…

pthread vs openMP之我见

前两天看了些并行计算的文章&#xff0c;了解了一些并行计算的方法和原理。然后发现多线程实现里面还有个openMP&#xff0c;这个以前从来没见过&#xff08;火星了&#xff09;&#xff0c;之前只是知道pthread线程库和微软也实现了一套线程。又看了看openMP的一些教程才知道它…

线程池默认多少个线程_我需要多少个线程?

线程池默认多少个线程这取决于您的应用程序。 但是&#xff0c;对于那些希望对如何从生产站点购买的所有昂贵内核中挤出大量资金的人&#xff0c;请多多包涵&#xff0c;我将阐明围绕多线程 Java应用程序的奥秘。 内容针对最典型的Java EE应用程序进行了“优化”&#xff0c;该…

mysql error writing_MySQL:Error writing file (Errcode: 28)解决方法

问题描述&#xff1a;在执行创建表语句时提示&#xff1a;mysql> CREATE TABLE cash_request (id int(11) NOT NULL auto_increment,dev_id int(11) NOT NULL,bank_account_info varchar(255) NOT NULL,money int(11) NOT NULL,status tinyint(1) NOT NULL default 1,is_fan…

[暑假集训Day4T3]曲线

三分模板。 三分法求单峰函数最优值,之后每次取所有二次函数最优值即可 #pragma GCC optimize(3,"Ofast","inline") #include<iostream> #include<cstdio> #define N 100005 #define eps 1e-9 using namespace std; int read() {int x0,f1;cha…

模拟Spring Security上下文进行单元测试

今天&#xff0c;在为一种Java方法编写单元测试用例时&#xff0c;如下所示&#xff1a; public ApplicationUser getApplicationUser() {ApplicationUser applicationUser (ApplicationUser) SecurityContextHolder.getContext().getAuthentication().getPrincipal();return…

mysql semi-synchronous_MySQL Semisynchronous Replication介绍

前言MySQL 5.5版本之前默认的复制是异步(Asynchronous )模式的, MySQL 5.5 以plugins的方式提供了Semisynchronous Replication 模式。在介绍 semi sync 之前,我们先了解&#xff1a;半同步 Asynchronous 和 同步 Synchronous 。异步复制模式主库将已经提交的事务event 写入bin…

Jquery屏蔽回车键

1 $(function(){2 3 $(“#tagForm input”).keypress(4 5 function(event){6 7 if(event.keyCode 13){8 9 returnfalse;10 11 }12 13 });14 15 })转载于:https://www.cnblogs.com/pfs1314/archive/2011/04/19/2020706.html

滑坡泥石流的防御措施_滑坡泥石流防御

什么是滑坡、泥石流?滑坡是指山坡在河流冲刷、降雨、地震、人工切坡等因素影响下&#xff0c;土层或岩层整体或分散地顺斜坡向下滑动的现象。滑坡也叫地滑&#xff0c;群众中还有“走山”、“垮山”或“山剥皮”等俗称。泥石流是指在降水、溃坝或冰雪融化形成的地面流水作用下…

Event Delegate(代理)异常:该委托必须有一个目标 解决方法

正文待叙转载于:https://www.cnblogs.com/kodong/archive/2013/04/19/3031212.html

自定义注解 实现自定义消息_实现自定义的未来

自定义注解 实现自定义消息上一次我们学习了java.util.concurrent.Future<T>背后的原理 。 我们还发现&#xff0c; Future<T>通常由库或框架返回。 但是&#xff0c;没有什么可以阻止我们在有意义的情况下自行实现所有功能。 它不是特别复杂&#xff0c;可以显着改…

菜单 java_java 菜单

继承体系MenuBar,Menu,MenuItem之间的关系&#xff1a;先创建菜单条&#xff0c;再创建菜单&#xff0c;每一个菜单中建立菜单项。也可以菜单添加到菜单中&#xff0c;作为子菜单。通过setMenuBar()方法&#xff0c;将菜单添加到Frame中。package june610;import java.awt.File…

Jsp、Servlet

1 forward、redirect forward 转发是服务器行为&#xff0c;浏览器根本不知道服务器发送的内容是从哪儿来&#xff0c;所以它的地址栏中还是原来的地址。 redirect 重定向是客户端行为。redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址&#xff0c;一…

Java Finalizer和Java文件输入/输出流

在与主题直接合作或花时间学习它们之后&#xff0c;我经常会发现自己在网上注意到更多主题。 最近的Stephen Connolly &#xff08; CloudBees &#xff09;发表FileInputStream / FileOutputStream被认为有害的消息引起了我的注意&#xff0c;因为我最近在Java的finalizer中遇…

java 运行main_使用maven运行Java Main的三种方法解析

maven使用exec插件运行java main方法&#xff0c;以下是3种不同的操作方式。一、从命令行运行1、运行前先编译代码&#xff0c;exec&#xff1a;java不会自动编译代码&#xff0c;你需要手动执行mvn compile来完成编译。mvn compile2、编译完成后&#xff0c;执行exec运行main方…