- 浏览: 148033 次
- 性别:
- 来自: 大连
文章分类
最新评论
-
zhang964761032:
学习学习
不可直译的英语 -
illu:
这个很高端。。。
凉皮的做法 -
cindylu520:
我不回答你,你往话里带我。小样。
The lost lady 败犬女 -
lujinan858:
那你是败犬中得胜犬还是胜犬中的败犬呢?嘿嘿
The lost lady 败犬女 -
dunhuacc12:
能给个学习英语的网站么?你这些题是在哪里弄的啊? 最近想补补 ...
20100316英语学习
测试表
CREATE TABLE `string_test` (
`id` int(11) NOT NULL auto_increment COMMENT '用户ID',
`name` varchar(50) NOT NULL default '' COMMENT '名称',
`job` varchar(23) NOT NULL COMMENT '工作',
`sex` tinyint(1) NOT NULL default '1' COMMENT '性别',
`hobby` varchar(100) character set utf8 collate utf8_unicode_ci default NULL COMMENT '爱好',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
测试数据
INSERT INTO `string_test` (`id`, `name`, `job`, `sex`, `hobby`) VALUES
(1, 'tank', '农民工', 1, '军棋,游戏,fishing'),
(2, 'zhang', 'DUCK', 0, 'fly,make firend'),
(3, 'ying', 'no job', 1, 'flying,driving,testing'),
(4, 'tankzhang', 'love your love', 1, 'i love you');
1 | tank | 农民工 | 1 | 军棋,游戏,fishing |
2 | zhang | DUCK | 0 | fly,make firend |
3 | ying | no job | 1 | flying,driving,testing |
4 | tankzhang | love your love | 1 | i love you |
二,mysql字符串操作函数
1,UPPER和UCASE
返回字符串str,根据当前字符集映射(缺省是ISO-8859-1 Latin1)把所有的字符改变成大写。该函数对多字节是可靠的。
mysql> select name,UPPER(name) from string_test where name='tank'; +------+-------------+ | name | UPPER(name) | +------+-------------+ | tank | TANK | +------+-------------+ 1 row in set (0.00 sec)
2,LOWER和LCASE
返回字符串str,根据当前字符集映射(缺省是ISO-8859-1 Latin1)把所有的字符改变成小写。该函数对多字节是可靠的。
mysql> select sex,LCASE(job) from string_test where job='DUCK'; +------+------------+ | sex | LCASE(job) | +------+------------+ | 1 | duck | +------+------------+ 1 row in set (0.00 sec)
3,FIND_IN_SET(str,strlist)
如果字符串str在由N子串组成的表strlist之中,返回一个1到N的值。一个字符串表是被“,”分隔的子串组成的一个字符串。如果第一个参数是一个常数字符串并且第二个参数是一种类型为SET的列,FIND_IN_SET()函数被优化而使用位运算!如果str不是在strlist里面或如果strlist是空字符串,返回0。如果任何一个参数是NULL,返回NULL。如果第一个参数包含一个“,”,该函数将工作不正常。看面是二种不同的效果,可以看一下
mysql> SELECT id,name FROM string_test WHERE find_in_set('fly',hobby); +----+-------+ | id | name | +----+-------+ | 2 | zhang | +----+-------+ 1 row in set (0.00 sec) mysql> SELECT id,name FROM string_test WHERE hobby like 'fly%'; +----+-------+ | id | name | +----+-------+ | 2 | zhang | | 3 | ying | +----+-------+ 2 rows in set (0.00 sec)
4,FIELD(str,str1,str2,str3,…)
返回str在str1, str2, str3, …清单的索引。如果str没找到,返回0。FIELD()是ELT()反运算。
mysql> SELECT id, name, FIELD( id, name, sex, job, hobby ) -> FROM string_test where id < 4; +----+-------+------------------------------------+ | id | name | FIELD( id, name, sex, job, hobby ) | +----+-------+------------------------------------+ | 1 | tank | 2 | | 2 | zhang | 0 | | 3 | ying | 0 | +----+-------+------------------------------------+ 3 rows in set (0.00 sec)
5.ELT(N,str1,str2,str3,…)
如果N= 1,返回str1,如果N= 2,返回str2,等等。如果N小于1或大于参数个数,返回NULL。ELT()是FIELD()反运算。
mysql> SELECT id, name, ELT(1, id, name, sex, job, hobby ) FROM string_test where id < 4; +----+-------+------------------------------------+ | id | name | ELT(1, id, name, sex, job, hobby ) | +----+-------+------------------------------------+ | 1 | tank | 1 | | 2 | zhang | 2 | | 3 | ying | 3 | +----+-------+------------------------------------+ 3 rows in set (0.00 sec) mysql> SELECT id, name, ELT(2, id, name, sex, job, hobby ) FROM string_test where id < 4; +----+-------+------------------------------------+ | id | name | ELT(2, id, name, sex, job, hobby ) | +----+-------+------------------------------------+ | 1 | tank | tank | | 2 | zhang | zhang | | 3 | ying | ying | +----+-------+------------------------------------+ 3 rows in set (0.00 sec)
6,REPLACE(str,from_str,to_str)
返回字符串str,其字符串from_str的所有出现由字符串to_str代替。
mysql> SELECT id,REPLACE(hobby,"firend",'living') FROM string_test WHERE id = 2; +----+----------------------------------+ | id | REPLACE(hobby,"firend",'living') | +----+----------------------------------+ | 2 | fly,make living | +----+----------------------------------+ 1 row in set (0.00 sec)
7,REPEAT(str,count)
返回由重复countTimes次的字符串str组成的一个字符串。如果count <= 0,返回一个空字符串。如果str或count是NULL,返回NULL。
mysql> SELECT id,REPEAT(name,2) FROM string_test WHERE id > 1 and id < 4; +----+----------------+ | id | REPEAT(name,2) | +----+----------------+ | 2 | zhangzhang | | 3 | yingying | +----+----------------+ 2 rows in set (0.00 sec)
8,REVERSE(str)
返回颠倒字符顺序的字符串str。
mysql> SELECT id,reverse(name) FROM string_test WHERE id > 1 and id < 4; +----+---------------+ | id | reverse(name) | +----+---------------+ | 2 | gnahz | | 3 | gniy | +----+---------------+ 2 rows in set (0.00 sec)
9,INSERT(str,pos,len,newstr)
返回字符串str,在位置pos起始的子串且len个字符长得子串由字符串newstr代替。
mysql> select id,name,INSERT(hobby,10,6,'living') from string_test where id = 2; +----+-------+-----------------------------+ | id | name | INSERT(hobby,10,6,'living') | +----+-------+-----------------------------+ | 2 | zhang | fly,make living | +----+-------+-----------------------------+ 1 row in set (0.00 sec)
10,SUBSTRING(str FROM pos)
从字符串str的起始位置pos返回一个子串。下面的sub2没有值,因为mysql数据库的下标是从1开始的。
mysql> SELECT id, substring( hobby, 1, 6) AS sub1, substring( hobby from 0 for 8 ) AS sub2,substring( hobby,2) AS sub3, substring( hobby from 4 ) AS sub4 FROM s tring_test WHERE id =4; +----+--------+------+-----------+---------+ | id | sub1 | sub2 | sub3 | sub4 | +----+--------+------+-----------+---------+ | 4 | i love | | love you | ove you | +----+--------+------+-----------+---------+ 1 row in set (0.00 sec)
11,SUBSTRING_INDEX(str,delim,count)
返回从字符串str的第count个出现的分隔符delim之后的子串。如果count是正数,返回最后的分隔符到左边(从左边数) 的所有字符。如果count是负数,返回最后的分隔符到右边的所有字符(从右边数)。
mysql> SELECT id,SUBSTRING_INDEX(hobby,',',2) as test1,SUBSTRING_INDEX(hobby,',' ,-1) as test2 FROM string_test WHERE id = 3; +----+----------------+---------+ | id | test1 | test2 | +----+----------------+---------+ | 3 | flying,driving | testing | +----+----------------+---------+ 1 row in set (0.01 sec)
12,LTRIM(str)
返回删除了其前置空格字符的字符串str。
mysql> SELECT id,LTRIM(job) FROM string_test WHERE id = 4; +----+----------------+ | id | LTRIM(job) | +----+----------------+ | 4 | love your love | +----+----------------+ 1 row in set (0.00 sec)
13,RTRIM(str)
返回删除了其拖后空格字符的字符串str。
mysql> SELECT id,RTRIM(job) FROM string_test WHERE id = 4; +----+----------------+ | id | RTRIM(job) | +----+----------------+ | 4 | love your love | +----+----------------+ 1 row in set (0.00 sec)
14,TRIM([[BOTH | LEADING | TRAILING] [remstr] FROM] str)
返回字符串str,其所有remstr前缀或后缀被删除了。如果没有修饰符BOTH、LEADING或TRAILING给出,BOTH被假定。如果remstr没被指定,空格被删除。
mysql> select trim(' test '); +-----------------+ | trim(' test ') | +-----------------+ | test | +-----------------+ 1 row in set (0.01 sec) mysql> SELECT id,TRIM(LEADING "love" from job) as test1,TRIM(BOTH "love" from jo b) as test2,TRIM(TRAILING "love" from job) as test3 FROM string_test WHERE id = 4 -> ; +----+------------+--------+------------+ | id | test1 | test2 | test3 | +----+------------+--------+------------+ | 4 | your love | your | love your | +----+------------+--------+------------+ 1 row in set (0.00 sec)
15,MID(str,pos,len)
从字符串str返回一个len个字符的子串,从位置pos开始。使用FROM的变种形式是ANSI SQL92语法。
mysql> SELECT id, mid( hobby, 1, 6 ) AS sub1, mid( hobby -> FROM 0 -> FOR 8 ) AS sub2, mid( hobby, 2 ) AS sub3, mid( hobby -> FROM 4 ) AS sub4 -> FROM string_test -> WHERE id =4 ; +----+--------+------+-----------+---------+ | id | sub1 | sub2 | sub3 | sub4 | +----+--------+------+-----------+---------+ | 4 | i love | | love you | ove you | +----+--------+------+-----------+---------+ 1 row in set (0.00 sec) mysql>
16,LPAD(str,len,padstr)
返回字符串str,左面用字符串padstr填补直到str是len个字符长。
mysql> SELECT id,LPAD(name,11,"zhang ") FROM string_test WHERE id = 3; +----+------------------------+ | id | LPAD(name,11,"zhang ") | +----+------------------------+ | 3 | zhang zying | +----+------------------------+ 1 row in set (0.00 sec)
17,RPAD(str,len,padstr)
返回字符串str,右面用字符串padstr填补直到str是len个字符长。
mysql> SELECT id,RPAD(name,11," ying") FROM string_test WHERE id = 2; +----+-----------------------+ | id | RPAD(name,11," ying") | +----+-----------------------+ | 2 | zhang ying | +----+-----------------------+ 1 row in set (0.00 sec)
18,LEFT(str,len)
返回字符串str的最左面len个字符。
mysql> SELECT id,left(job,4) FROM string_test WHERE id = 4; +----+-------------+ | id | left(job,4) | +----+-------------+ | 4 | love | +----+-------------+ 1 row in set (0.00 sec)
19,RIGHT(str,len)
返回字符串str的最右面len个字符。
mysql> SELECT id,right(job,4) FROM string_test WHERE id = 4; +----+--------------+ | id | right(job,4) | +----+--------------+ | 4 | love | +----+--------------+ 1 row in set (0.00 sec)
20,位置控制函数
POSITION(substr IN str)
返回子串substr在字符串str第一个出现的位置,如果substr不是在str里面,返回0.
LOCATE(substr,str,pos)
返回子串substr在字符串str第一个出现的位置,从位置pos开始。如果substr不是在str里面,返回0。
INSTR(str,substr)
返回子串substr在字符串str中的第一个出现的位置。这与有2个参数形式的LOCATE()相同,除了参数被颠倒。
mysql> SELECT id,INSTR(job,"you") as instr,LOCATE('love',job,3) as locate,POSITI ON('love' in job) as position FROM string_test WHERE id = 4; +----+-------+--------+----------+ | id | instr | locate | position | +----+-------+--------+----------+ | 4 | 6 | 11 | 1 | +----+-------+--------+----------+ 1 row in set (0.00 sec)
21,得到字符串长度的函数
LENGTH(str),OCTET_LENGTH(str),CHAR_LENGTH(str),CHARACTER_LENGTH(str)
mysql> SELECT id,LENGTH(job) as one,OCTET_LENGTH(job) as two,CHAR_LENGTH(job) as three,CHARACTER_LENGTH(job) as four FROM string_test WHERE id = 4; +----+-----+-----+-------+------+ | id | one | two | three | four | +----+-----+-----+-------+------+ | 4 | 14 | 14 | 14 | 14 | +----+-----+-----+-------+------+ 1 row in set (0.00 sec)
22,合并多个字符串,或者表中的多个字段
CONCAT(str1,str2,…)
返回来自于参数连结的字符串。如果任何参数是NULL,返回NULL。可以有超过2个的参数。一个数字参数被变换为等价的字符串形式。
mysql> SELECT id,CONCAT(name,job,hobby) FROM string_test WHERE id = 4; +----+-----------------------------------+ | id | CONCAT(name,job,hobby) | +----+-----------------------------------+ | 4 | tankzhanglove your lovei love you | +----+-----------------------------------+ 1 row in set (0.00 sec)
23,进制转换
BIN(N)
返回二进制值N的一个字符串表示,在此N是一个长整数(BIGINT)数字,这等价于CONV(N,10,2)。如果N是NULL,返回NULL。
OCT(N)
返回八进制值N的一个字符串的表示,在此N是一个长整型数字,这等价于CONV(N,10,8)。如果N是NULL,返回NULL。
HEX(N)
返回十六进制值N一个字符串的表示,在此N是一个长整型(BIGINT)数字,这等价于CONV(N,10,16)。如果N是NULL,返回NULL。
ASCII(str)
返回字符串str的最左面字符的ASCII代码值。如果str是空字符串,返回0。如果str是NULL,返回NULL。
mysql> select bin(20),oct(20),hex(20),ascii(20); +---------+---------+---------+-----------+ | bin(20) | oct(20) | hex(20) | ascii(20) | +---------+---------+---------+-----------+ | 10100 | 24 | 14 | 50 | +---------+---------+---------+-----------+ 1 row in set (0.02 sec)
转载自:http://blog.51yip.com/mysql/965.html
发表评论
-
SQL例句
2011-11-29 16:34 775--====================简单的查增删改 ... -
mysql统计数据 count函数
2011-07-07 16:55 1050有时数据库经常要统计一些数据 例如根据某一个字段分组后,每组 ... -
MySQL内置函数表,包括字符串函数、数学函数和日期时间函数
2011-01-10 17:32 865字符串函数 ASCII(str) 返回字符串str的第一个 ... -
MySQL字符串函数:字符串截取
2011-01-10 10:05 705MySQL 字符串截取函数:left(), right(), ... -
Oracle、SQL Server、Sybase、MySQL 性能优化
2010-09-21 17:32 835通常写sql语句时,一般不会考虑sql语句的性能如果系统数据量 ... -
MYSQL 新增字段 删除字段 修改字段 级联删除 级联更新
2010-07-17 14:39 1097//添加字段并设置主键ALTER TABLE tabelnam ... -
实体关系用法
2010-07-01 09:51 739一、RelationShip(联系) 1、Depe ... -
Mysql时间格式转换
2010-03-11 11:46 862对于每个类型拥有的值范围以及并且指定日期何时间值的有效格式的描 ...
相关推荐
但如果条件是基于字段中的子串或特定字符,则需结合字符串函数如`LENGTH`、`REPLACE`等来构建更复杂的查询语句,类似于文章中给出的`int mylen = (mysql.Length - mysql.Replace("sum", "").Length) / 3;`这样的...
内容概要:本文档介绍了 MySQL 数据库中的内置函数及其使用方法,包括日期时间函数、字符串函数、数学函数及其他常用函数。详细解释了每种类型的函数及其常见应用场景,提供了具体的 SQL 语句实例。 适合人群:MySQL...
- `REVERSE(str)` 是一个MySQL字符串函数,它接收一个字符串参数`str`,并返回一个新的字符串,其字符顺序与原字符串相反。这个函数在分割字符串为数组时,用于倒序排列字符串以便于后续操作。 2. **SUBSTRING_...
本实例将深入探讨如何在SQL语句中设置多个字符串条件,这对于初学者掌握数据库操作至关重要。 首先,让我们了解SQL的基本结构。SQL主要用于与关系型数据库进行交互,其基本查询语句包括SELECT,FROM,WHERE等部分。...
本文实例讲述了PHP常见字符串操作函数与用法。分享给大家供大家参考,具体如下: 一、字符串的格式化 1、字符串的格式化 trim()函数可以去除字符串的开始位置和结束位置的空格,并将结果字符串返回,默认情况下去除...
2. **字符串函数**:例如`CONCAT()`用于连接两个或更多字符串,`SUBSTRING()`用于提取字符串的一部分,`REPLACE()`用于替换字符串中的特定部分,而`LOWER()`和`UPPER()`则用于转换大小写。 3. **日期和时间函数**:...
MySQL 中的字符串 Hash 函数 MySQL 是一种广泛使用的关系数据库管理系统,它也提供了一些字符串哈希算法。下面是一个 MySQL 中的哈希函数的实现: #ifndef new_hash_function /* calc hashvalue for a key */ ...
- 字符串函数在使用时应注意区分大小写,MySQL在某些情况下是区分大小写的。 5. 函数的运用实例: - 使用`CONCAT()`函数可以轻松地将多个字段的值拼接在一起,例如,`SELECT CONCAT(first_name, ' ', last_name) ...
本文主要探讨了MySQL中的一些常用函数,涵盖了聚集函数、字符串处理、数值运算以及时间日期处理等多个方面。 首先,聚集函数是MySQL中处理大量数据时非常重要的工具。例如,`AVG()`函数用于计算指定字段的平均值,...
Linux C字符串替换函数实例详解 最近学习linux 的基础编程知识,字符串替换函数,在网上找下资料,觉得这篇文章写的不错,记录下来,和大家分享一下: 实例代码: #include #include #include /** * * @author...
PHP内建了大量的函数,涵盖了字符串处理、数组操作、文件系统交互、网络通信、数学运算、日期时间处理等多个方面。以下是一些主要的知识点: 1. **字符串处理函数**: - `strlen()`:计算字符串长度。 - `str_...
在C#中,使用ADO.NET操作数据库时,你可以通过`SqlConnection`(SQL Server)、`OleDbConnection`(ODBC兼容数据库)或`OdbcConnection`(ODBC)类创建连接对象,并将连接字符串作为构造函数的参数传递。例如: ```...
本资源"PHP常用函数大全"提供了丰富的函数实例,帮助开发者深入理解和掌握PHP中的核心函数。下面,我们将对一些重要的PHP函数进行详细介绍。 1. **字符串处理函数** - `strlen()`:计算字符串长度,例如`strlen(...
例如,当你尝试将字符串与0相加(如`'123'+0`)时,MySQL会将字符串解析为数字,然后执行加法操作。这种方法简单且直观,但如果字符串不能转换为有效的数字,将引发错误。 需要注意的是,以上方法只适用于纯数字...
1. **字符串处理函数**:PHP提供了丰富的字符串操作函数,如`strlen()`用于获取字符串长度,`str_replace()`用于替换字符串中的指定字符或子串,`strpos()`用于查找子串在字符串中的位置,`trim()`用于去除字符串...
日期和时间函数是MySQL中的重要组成部分,它们允许我们进行日期和时间的计算、格式化以及各种操作,极大地增强了数据库查询和数据分析的能力。在这个“mysql的日期和时间函数”教程中,我们将深入探讨这些关键功能。...
MySQL字符集问题一直以来都是数据库管理中的一个痛点,尤其是在处理多语言数据或者进行数据迁移时,不恰当的字符集设置可能导致乱码、无法存储特殊字符甚至数据丢失。这篇文档将深入探讨MySQL字符集的工作原理,常见...
总结来说,MySQL提供了多种方式来处理字符串拼接,包括基本的`CONCAT()`函数、处理NULL值的`IFNULL()`函数,以及带有分隔符的`CONCAT_WS()`函数。这些工具使得在数据库中组合和格式化文本变得更加灵活。在实际开发中...
1. 字符串函数 - CHARINDEX():用于返回子字符串在字符串中首次出现的位置。 - PATINDEX():返回字符串中某个模式的起始位置,可以使用通配符。 - LEN():返回字符串的长度。 - LEFT() 和 RIGHT():分别返回字符...