0

0

mysql的字符串函数

php中文网

php中文网

发布时间:2016-06-07 15:24:23

|

1438人浏览过

|

来源于php中文网

原创

对于针对字符串位置的操作,第一个位置被标记为 1 。 1.ASCII(str) 返回字符串 str 的最左面字符的 ASCII 代码。 如果 str 是空字符串,返回 0 。如果 str 是 NULL ,返回 NULL 。 mysqlselect ASCII('2'); - 50 mysqlselect ASCII(2); - 50 mysqlselect ASC



对于针对字符串位置的操作,第一个位置被标记为1

1.ASCII(str)

返回字符串str的最左面字符的ASCII代码值。如果str是空字符串,返回0。如果strNULL,返回NULL

mysql>select ASCII('2');

        -> 50

mysql>select ASCII(2);

        -> 50

mysql>select ASCII('dx');

        -> 100

也可参见ORD()函数。

2.ORD(str)

如果字符串str最左面字符是一个多字节字符,通过以格式((first byte ASCII code)*256+(second byte ASCII code))[*256+third byteASCII code...]返回字符的ASCII代码值来返回多字节字符代码。如果最左面的字符不是一个多字节字符。返回与ASCII()函数返回的相同值。

mysql>select ORD('2');

        -> 50

 

3.CONV(N,from_base,to_base)

在不同的数字基之间变换数字。返回数字N的字符串数字,从from_base基变换为to_base基,如果任何参数是NULL,返回NULL。参数N解释为一个整数,但是可以指定为一个整数或一个字符串。最小基是2且最大的基是36。如果to_base是一个负数,N被认为是一个有符号数,否则,N被当作无符号数。CONV64位点精度工作。

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'

 

4.BIN(N)

返回二进制值N的一个字符串表示,在此N是一个长整数(BIGINT)数字,这等价于CONV(N,10,2)。如果NNULL,返回NULL

mysql>select BIN(12);

        -> '1100'

 

5.OCT(N)

返回八进制值N的一个字符串的表示,在此N是一个长整型数字,这等价于CONV(N,10,8)。如果NNULL,返回NULL

mysql>select OCT(12);

        -> '14'

 

6.HEX(N)

返回十六进制值N一个字符串的表示,在此N是一个长整型(BIGINT)数字,这等价于CONV(N,10,16)。如果NNULL,返回NULL

mysql>select HEX(255);

        -> 'FF'

 

7.CHAR(N,...)

CHAR()将参数解释为整数并且返回由这些整数的ASCII代码字符组成的一个字符串。NULL值被跳过。

mysql>select CHAR(77,121,83,81,'76');

        -> 'MySQL'

mysql>select CHAR(77,77.3,'77.3');

        -> 'MMM'

 

8.CONCAT(str1,str2,...)

返回来自于参数连结的字符串。如果任何参数是NULL,返回NULL。可以有超过2个的参数。一个数字参数被变换为等价的字符串形式。

mysql>select CONCAT('My', 'S', 'QL');

        -> 'MySQL'

mysql>select CONCAT('My', NULL, 'QL');

        -> NULL

mysql>select CONCAT(14.3);

        -> '14.3'

 

9.LENGTH(str)

 

10.OCTET_LENGTH(str)

 

11.CHAR_LENGTH(str)

 

12.CHARACTER_LENGTH(str)

返回字符串str的长度。

mysql>select LENGTH('text');

        -> 4

mysql>select OCTET_LENGTH('text');

        -> 4

 

注意,对于多字节字符,其CHAR_LENGTH()仅计算一次。

13.LOCATE(substr,str)

 

云网OA
云网OA

采用JSP开发的办公自动化产品、基于B/S结构,运行环境:JDK v1.5、Tomcat v5.5、MySQL v4.1,三者均为以上版本其他相关内容:可视化流程设计: 流程支持串签、会签和分支流程,可以设置流程节点的修改、删除权限,并可指定流程中各个用户在表单中可以填写的域。智能表单所见即所得设计: 智能设计,自动在数据库中生成表格,方便优化程序 公共交流: 集论坛、博客、聊天室于一体文件柜:C

下载

14.POSITION(substrIN str)

返回子串substr在字符串str第一个出现的位置,如果substr不是在str里面,返回0.

mysql>select LOCATE('bar', 'foobarbar');

        -> 4

mysql>select LOCATE('xbar', 'foobar');

        -> 0

 

该函数是多字节可靠的。

15.LOCATE(substr,str,pos)

返回子串substr在字符串str第一个出现的位置,从位置pos开始。如果substr不是在str里面,返回0

mysql>select LOCATE('bar', 'foobarbar',5);

        -> 7

 

这函数是多字节可靠的。

16.INSTR(str,substr)

返回子串substr在字符串str中的第一个出现的位置。这与有2个参数形式的LOCATE()相同,除了参数被颠倒。

mysql>select INSTR('foobarbar', 'bar');

        -> 4

mysql>select INSTR('xbar', 'foobar');

        -> 0

 

这函数是多字节可靠的。

17.LPAD(str,len,padstr)

返回字符串str,左面用字符串padstr填补直到strlen个字符长。

mysql>select LPAD('hi',4,'??');

        -> '??hi'

 

18.RPAD(str,len,padstr)

返回字符串str,右面用字符串padstr填补直到strlen个字符长。 

mysql>select RPAD('hi',5,'?');

        -> 'hi???'

 

19.LEFT(str,len)

返回字符串str的最左面len个字符。

mysql>select LEFT('foobarbar', 5);

        -> 'fooba'

 

该函数是多字节可靠的。

20.RIGHT(str,len)

返回字符串str的最右面len个字符

mysql>select RIGHT('foobarbar', 4);

        -> 'rbar'

 

该函数是多字节可靠的。

21.SUBSTRING(str,pos,len)

 

22.SUBSTRING(strFROM pos FOR len)

 

23.MID(str,pos,len)

从字符串str返回一个len个字符的子串,从位置pos开始。使用FROM的变种形式是ANSI SQL92语法。

mysql>select SUBSTRING('Quadratically',5,6);

        -> 'ratica'

 

该函数是多字节可靠的。

24.SUBSTRING(str,pos)

 

25.SUBSTRING(strFROM pos)

从字符串str的起始位置pos返回一个子串。

mysql>select SUBSTRING('Quadratically',5);

        -> 'ratically'

mysql>select SUBSTRING('foobarbar' FROM 4);

        -> 'barbar'

 

该函数是多字节可靠的。

26.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'

 

该函数对多字节是可靠的。

27.LTRIM(str)

返回删除了其前置空格字符的字符串str

mysql>select LTRIM('  barbar');

        -> 'barbar'

 

28.RTRIM(str)

返回删除了其拖后空格字符的字符串str

mysql>select RTRIM('barbar   ');

        -> 'barbar'

 

该函数对多字节是可靠的。

29.TRIM([[BOTH |LEADING | TRAILING] [remstr] FROM] str)

返回字符串str,其所有remstr前缀或后缀被删除了。如果没有修饰符BOTHLEADINGTRAILING给出,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'

 

该函数对多字节是可靠的。

21.SOUNDEX(str)

返回str的一个同音字符串。听起来大致相同2个字符串应该有相同的同音字符串。一个标准的同音字符串长是4个字符,但是SOUNDEX()函数返回一个任意长的字符串。你可以在结果上使用SUBSTRING()得到一个标准同音串。所有非数字字母字符在给定的字符串中被忽略。所有在A-Z之外的字符国际字母被当作元音。

mysql>select SOUNDEX('Hello');

        -> 'H400'

mysql>select SOUNDEX('Quadratically');

        -> 'Q36324'

 

22.SPACE(N)

返回由N个空格字符组成的一个字符串。

mysql>select SPACE(6);

        -> '      '

 

23.REPLACE(str,from_str,to_str)

返回字符串str,其字符串from_str的所有出现由字符串to_str代替。

mysql>select REPLACE('www.mysql.com', 'w', 'Ww');

        -> 'WwWwWw.mysql.com'

 

该函数对多字节是可靠的。

24.REPEAT(str,count)

返回由重复countTimes次的字符串str组成的一个字符串。如果count,返回一个空字符串。如果strcountNULL,返回NULL

mysql>select REPEAT('MySQL', 3);

        -> 'MySQLMySQLMySQL'

 

25.REVERSE(str)

返回颠倒字符顺序的字符串str

mysql>select REVERSE('abc');

        -> 'cba'

 

该函数对多字节可靠的。

26.INSERT(str,pos,len,newstr)

返回字符串str,在位置pos起始的子串且len个字符长得子串由字符串newstr代替。

mysql>select INSERT('Quadratic', 3, 4, 'What');

        -> 'QuWhattic'

 

该函数对多字节是可靠的。

27.ELT(N,str1,str2,str3,...)

如果N= 1,返回str1,如果N= 2,返回str2,等等。如果N小于1或大于参数个数,返回NULLELT()FIELD()反运算。

mysql>select ELT(1, 'ej', 'Heja', 'hej', 'foo');

        -> 'ej'

mysql>select ELT(4, 'ej', 'Heja', 'hej', 'foo');

        -> 'foo'

 

28.FIELD(str,str1,str2,str3,...)

返回strstr1, str2, str3, ...清单的索引。如果str没找到,返回0FIELD()ELT()反运算。

mysql>select FIELD('ej', 'Hej', 'ej', 'Heja', 'hej', 'foo');

        -> 2

mysql>select FIELD('fo', 'Hej', 'ej', 'Heja', 'hej', 'foo');

        -> 0

 

29.FIND_IN_SET(str,strlist)

如果字符串str在由N子串组成的表strlist之中,返回一个1N的值。一个字符串表是被“,”分隔的子串组成的一个字符串。如果第一个参数是一个常数字符串并且第二个参数是一种类型为SET的列,FIND_IN_SET()函数被优化而使用位运算!如果str不是在strlist里面或如果strlist是空字符串,返回0。如果任何一个参数是NULL,返回NULL。如果第一个参数包含一个“,”,该函数将工作不正常。

mysql>SELECT FIND_IN_SET('b','a,b,c,d');

        -> 2

 

30.MAKE_SET(bits,str1,str2,...)

返回一个集合 (包含由“,”字符分隔的子串组成的一个字符串),由相应的位在bits集合中的的字符串组成。str1对应于位0str2对应位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');

        -> ''

 

31.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

 

32.LCASE(str)

 

33.LOWER(str)

返回字符串str,根据当前字符集映射(缺省是ISO-8859-1Latin1)把所有的字符改变成小写。该函数对多字节是可靠的。

mysql>select LCASE('QUADRATICALLY');

        -> 'quadratically'

 

34.UCASE(str)

 

35.UPPER(str)

返回字符串str,根据当前字符集映射(缺省是ISO-8859-1Latin1)把所有的字符改变成大写。该函数对多字节是可靠的。

mysql>select UCASE('Hej');

        -> 'HEJ'

 

该函数对多字节是可靠的。

36.LOAD_FILE(file_name)

读入文件并且作为一个字符串返回文件内容。文件必须在服务器上,你必须指定到文件的完整路径名,而且你必须有file权限。文件必须所有内容都是可读的并且小于max_allowed_packet。如果文件不存在或由于上面原因之一不能被读出,函数返回NULL

mysql>UPDATE table_name

           SETblob_column=LOAD_FILE("/tmp/picture")

           WHERE id=1;

 

 

MySQL必要时自动变换数字为字符串,并且反过来也如此:

mysql>SELECT 1+"1";

        -> 2

mysql>SELECT CONCAT(2,' test');

        -> '2 test'

 

如果你想要明确地变换一个数字到一个字符串,把它作为参数传递到CONCAT()

如果字符串函数提供一个二进制字符串作为参数,结果字符串也是一个二进制字符串。被变换到一个字符串的数字被当作是一个二进制字符串。这仅影响比较。

相关专题

更多
Java 桌面应用开发(JavaFX 实战)
Java 桌面应用开发(JavaFX 实战)

本专题系统讲解 Java 在桌面应用开发领域的实战应用,重点围绕 JavaFX 框架,涵盖界面布局、控件使用、事件处理、FXML、样式美化(CSS)、多线程与UI响应优化,以及桌面应用的打包与发布。通过完整示例项目,帮助学习者掌握 使用 Java 构建现代化、跨平台桌面应用程序的核心能力。

37

2026.01.14

php与html混编教程大全
php与html混编教程大全

本专题整合了php和html混编相关教程,阅读专题下面的文章了解更多详细内容。

19

2026.01.13

PHP 高性能
PHP 高性能

本专题整合了PHP高性能相关教程大全,阅读专题下面的文章了解更多详细内容。

37

2026.01.13

MySQL数据库报错常见问题及解决方法大全
MySQL数据库报错常见问题及解决方法大全

本专题整合了MySQL数据库报错常见问题及解决方法,阅读专题下面的文章了解更多详细内容。

19

2026.01.13

PHP 文件上传
PHP 文件上传

本专题整合了PHP实现文件上传相关教程,阅读专题下面的文章了解更多详细内容。

16

2026.01.13

PHP缓存策略教程大全
PHP缓存策略教程大全

本专题整合了PHP缓存相关教程,阅读专题下面的文章了解更多详细内容。

6

2026.01.13

jQuery 正则表达式相关教程
jQuery 正则表达式相关教程

本专题整合了jQuery正则表达式相关教程大全,阅读专题下面的文章了解更多详细内容。

3

2026.01.13

交互式图表和动态图表教程汇总
交互式图表和动态图表教程汇总

本专题整合了交互式图表和动态图表的相关内容,阅读专题下面的文章了解更多详细内容。

45

2026.01.13

nginx配置文件详细教程
nginx配置文件详细教程

本专题整合了nginx配置文件相关教程详细汇总,阅读专题下面的文章了解更多详细内容。

9

2026.01.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
MySQL 教程
MySQL 教程

共48课时 | 1.8万人学习

MySQL 初学入门(mosh老师)
MySQL 初学入门(mosh老师)

共3课时 | 0.3万人学习

简单聊聊mysql8与网络通信
简单聊聊mysql8与网络通信

共1课时 | 792人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号