`

mysql substring

阅读更多


substring:

语法
SUBSTRING( expression , start , length )
参数

expression

是字符串、二进制字符串、text、image、列或包含列的表达式。不要使用包含聚合函数的表达式。

start

是一个整数,指定子串的开始位置。

length

是一个整数,指定子串的长度(要返回的字符数或字节数)。

说明 由于在text 数据上使用SUBSTRING时startlength 指定字节数,因此DBCS数据(如日本汉字)可能导致在结果的开始或结束位置拆分字符。此行为与READTEXT处理DBCS的方式一致。然而,由于偶而会出现奇怪的结果,建议对DBCS字符使用ntext 而非text

返回类型

如果expression 是支持的字符数据类型,则返回字符数据。如果expression 是支持的binary 数据类型,则返回二进制数据。

返回字符串的类型与给定表达式的类型相同(表中显示的除外)。

给定的表达式 返回类型
text varchar
image varbinary
ntext nvarchar
注释

在字符数中必须指定使用ntextcharvarchar 数据类型的偏移量(startlength )。在字节数中必须指定使用textimagebinaryvarbinary 数据类型的偏移量。

说明 兼容级别可能影响返回值。有关兼容级别的更多信息,请参见sp_dbcmptlevel

示例
A.在字符串上使用SUBSTRING

下例显示如何只返回字符串的一部分。该查询在一列中返回authors 表中的姓氏,在另一列中返回authors 表中的名字首字母。

USEpubs
SELECTau_lname,SUBSTRING(au_fname,1,1)
FROMauthors
ORDERBYau_lname
下面是结果集:
au_lname
-----------------------------------------
BennetA
Blotchet-HallsR
CarsonC
DeFranceM
delCastilloI
...
YokomotoA

(23row(s)affected)

下例显示如何显示字符串常量abcdef中的第二个、第三个和第四个字符。

SELECTx=SUBSTRING('abcdef',2,3)
下面是结果集:
x
----------
bcd

(1row(s)affected)
B.在text、ntext和image数据上使用SUBSTRING

下例显示如何从pubs 数据库的publishers 表内的每个textimage 数据列中返回前200个字符。text 数据以varchar 的形式返回,image 数据则以varbinary 的形式返回。

USEpubs
SELECTpub_id,SUBSTRING(logo,1,10)ASlogo,
SUBSTRING(pr_info,1,10)ASpr_info
FROMpub_info
WHEREpub_id='1756'

下面是结果集:

pub_idlogopr_info
--------------------------------------
17560x474946383961E3002500Thisissa

(1row(s)affected)

下例显示SUBSTRING在textntext 数据上的效果。首先,下例在pubs 数据库内创建一个名为npr_info 的新表。然后,在npr_info 表中用pub_info.pr_info 列的前80个字符创建pr_info 列,并添加ü作为首字符。最后,INNERJOIN检索所有出版商标识号以及textntext 出版商信息列的SUBSTRING。

IFEXISTS(SELECTtable_nameFROMINFORMATION_SCHEMA.TABLES
WHEREtable_name='npub_info')
DROPTABLEnpub_info
GO
--Createnpub_infotableinpubsdatabase.Borrowedfrominstpubs.sql.
USEpubs
GO
CREATETABLEnpub_info
(
pub_idchar(4)NOTNULL
REFERENCESpublishers(pub_id)
CONSTRAINTUPKCL_npubinfoPRIMARYKEYCLUSTERED,
pr_infontextNULL
)

GO

--Fillthepr_infocolumninnpub_infowithinternationaldata.
RAISERROR('Nowattheinsertstopub_info...',0,1)

GO

INSERTnpub_infoVALUES('0736',N'
üThisissampletextdataforNewMoonBooks,publisher0736inthepubsdatabase')
INSERTnpub_infovalues('0877',N'
üThisissampletextdataforBinnet&Hardley,publisher0877inthepubsdataba')
INSERTnpub_infovalues('1389',N'
üThisissampletextdataforAlgodataInfosystems,publisher1389inthepubsda')
INSERTnpub_infovalues('9952',N'
üThisissampletextdataforScootneyBooks,publisher9952inthepubsdatabase')
INSERTnpub_infovalues('1622',N'
üThisissampletextdataforFiveLakesPublishing,publisher1622inthepubsd')
INSERTnpub_infovalues('1756',N'
üThisissampletextdataforRamonaPublishers,publisher1756inthepubsdatab')
INSERTnpub_infovalues('9901',N'
üThisissampletextdataforGGG&G,publisher9901inthepubsdatabase.GGG&Gi')
INSERTnpub_infovalues('9999',N'
üThisissampletextdataforLucernePublishing,publisher9999inthepubsdata')
GO
--Joinbetweennpub_infoandpub_infoonpub_id.
SELECTpr.pub_id,SUBSTRING(pr.pr_info,1,35)ASpr_info,
SUBSTRING(npr.pr_info,1,35)ASnpr_info
FROMpub_infoprINNERJOINnpub_infonpr
ONpr.pub_id=npr.pub_id
ORDERBYpr.pub_idASC

selectSUBSTRING(date_entered,1,4)asafromtb_area_collectgroupbySUBSTRING(date_entered,1,4)

From:

http://hi.baidu.com/qk31/blog/item/ca1dd11b3a69ebd5ad6e75c5.html

------------------------------------------------------

replace:

遇到想替换数据库里某一字段的内容时可以用REPLACE函数:

语法如下:
UPDATE tb1 SET f1=REPLACE(f1, 'abc', 'def');

REPLACE(str,from_str,to_str)
在字符串 str 中所有出现的字符串 from_str 均被 to_str替换,然后返回这个字符串:
mysql>selectREPLACE('www.mysql.com', 'w', 'Ww');
-> 'WwWwWw.mysql.com'
这个函数是多字节安全的。

示例:
UPDATE `dede_addonarticle` SET body = REPLACE ( body,
'</td>',
'' );
UPDATE `dede_addonarticle` SET body = REPLACE ( body,
'</tr>',
'' );
UPDATE `dede_addonarticle` SET body = REPLACE ( body,
'<tr>',
'' );
UPDATE `dede_archives` SET title= REPLACE ( title,
'大洋新闻 - ',
'' );
UPDATE `dede_addonarticle` SET body = REPLACE ( body,
'../../../../../../',
'http://special.dayoo.com/meal/' );

mysql replace

用法1.replace into

replace into table (id,name) values(‘1‘,‘aa‘),(‘2‘,‘bb‘)
此语句的作用是向表table中插入两条记录。
2.replace(object, search,replace)
把object中出现search的全部替换为replaceselect replace(‘www.webjx.com‘,‘w‘,‘Ww‘)--->WwW wWw.webjx.com

例:把表table中的name字段中的 aa替换为bbupdate table set name=replace(name,‘aa‘,‘bb‘)

From:

http://www.jcwcn.com/article/2008/0730/mysql_30777.html

ps:自我测试:

例如,数据库中存在如下字段数据

open_date

10 1 1993 12:00AM

2001年

2003-10-1

.......

----

如果想把上面字段数据改为只含年份,即如:1993,则,写法如下:

UPDATE table SET open_date=REPLACE(open_date,open_date,SUBSTRING(open_date,7,4)) WHERE open_dateLIKE "%am"

其他如下:

10 1 1993 12:00AM (%am)

2001年 ("%年")

2003-10-1 ("%-%-%")

分享到:
评论

相关推荐

    【SUBSTRING_INDEX】MySQL官方示例

    `SUBSTRING_INDEX()` 是 MySQL 数据库中的一个常用字符串处理函数,主要用于根据指定的分隔符对字符串进行分割,并返回分割后的子字符串。此函数在处理 URL 或路径等类型的数据时非常有用。 #### 二、函数语法 ```...

    Mysql字符串截取函数SUBSTRING的用法说明

    Mysql字符串截取函数SUBSTRING的用法说明 Mysql中的字符串截取函数SUBSTRING是一个非常强大的工具,可以帮助我们快速截取字符串中的指定部分。今天,我们来详细介绍SUBSTRING函数的用法和应用场景。 SUBSTRING函数...

    db2迁移到mysql.docx

    SUBSTRING(hello, a, b) STR_TO_DATE(dateStr, '%Y-%m-%d %T') ``` 通过以上内容可以看出,从DB2迁移到MySQL需要对原有的数据库设计和SQL脚本进行相应的调整。这不仅涉及数据类型的转换,还包括语法、函数和复杂...

    数据库中的substring

    1. **MySQL**中的`substring`函数支持上述的三种参数形式,同时也提供了一个变体`SUBSTR`,其语法与`substring`相同。 2. **SQL Server**中的`substring`函数也接受这三个参数,但起始位置可以为负数,表示从字符串...

    mysql分割字符串

    MySQL中的`SUBSTRING_INDEX()`函数是进行字符串分割的常用工具。它返回一个子串,该子串包含了从原始字符串的起始部分到指定分隔符出现的次数。函数的基本语法如下: ```sql SUBSTRING_INDEX(str, delim, count) ``...

    mysql截取的字符串函数substring_index的用法

    MySQL中的`SUBSTRING_INDEX()`函数是一个非常实用的字符串处理函数,它主要用于从字符串中提取子串,基于指定的分隔符出现的次数。这个函数在处理分隔符分隔的数据时特别有用,例如处理IP地址、逗号分隔的列表等。 ...

    presto sql 与mysql sql 对比.pdf

    * 字符串函数:Presto SQL 和 MySQL SQL 都支持字符串函数,如 `substring()`、`substring_index()`、`regexp_like()` 等。 * 数学函数:Presto SQL 和 MySQL SQL 都支持数学函数,如 `round()`、`coalesce()` 等。 ...

    oracle与mysql对比

    - 从指定位置截取到末尾:`mysql&gt; select substring('abcdefg', 2);` - **执行脚本文件**: - **Oracle**: - 命令:`SQL&gt; @a.sql` - **MySQL**: - 命令:`mysql&gt; source a.sql` - 或者通过命令行方式执行脚本...

    mysql函数库大全

    mysql&gt; select SUBSTRING('foobarbar',4,3); -&gt; 'oba' ``` ### 数值转换函数 #### BIN(N) 将数字`N`转换为其二进制表示。 ``` mysql&gt; select BIN(12); -&gt; '1100' ``` #### OCT(N) 将数字`N`转换为其八进制表示。 ...

    oracle,sqlserver及mysql对比

    截取字符串方面,Oracle 使用 SUBSTR 函数,而 MySQL 使用 SUBSTRING 函数。在 MySQL 中,从子句后的表如果是子查询形式,那么后面必须有别名。 事务 Oracle 很早就完全支持事务。MySQL 在 InnoDB 存储引擎的行级...

    sql server ,mysql,starrocks性能对比.docx

    ### SQL Server, MySQL, StarRocks 性能对比分析 #### 测试背景及环境 本文旨在通过实际场景下的性能测试来对比SQL Server、MySQL以及StarRocks这三种数据库管理系统在处理相同查询时的表现。测试环境分别为: - ...

    mysql的函数手册——汇总了mysql的常用函数

    mysql&gt; select SUBSTRING('foobarbar', 4, 3); -&gt; 'oba' ``` 通过以上介绍,我们了解了MySQL中一些常用的字符串处理及数值转换函数。这些函数可以帮助我们在进行数据查询与操作时更加灵活高效。希望本文能为你在...

    行政区划码 mysql

    还可以使用`LIKE`或`SUBSTRING`函数来按特定级别的行政区划码进行筛选。 6. 索引优化:为了提高查询性能,可以在`code`字段上创建索引,特别是当频繁进行按行政区划码查询时。 7. 更新维护:行政区划码可能因行政...

    Mysql常用函数列表

    Mysql常用函数列表 CONCAT (string2 [,... ]) //连接字串 INSTR (string ,substring ) //返回substring首次在string中出现的位置,不存在返回0 …… 数学类 ABS (number2 ) //绝对值 …… 日期...

    oracle转mysql.rar

    Oracle的`SUBSTR()`对应MySQL的`SUBSTRING()`。 其次,数据类型方面也存在差异。Oracle的`NUMBER`类型可以处理大整数和浮点数,而MySQL通常会用`BIGINT`, `FLOAT`或`DECIMAL`来替代。Oracle特有的`RAW`和`LONG RAW`...

    MySQL学习笔记.zip

    SQL提供丰富的操作符(如比较操作符、逻辑操作符、算术操作符)和函数(如聚合函数SUM、AVG、MAX、MIN,字符串函数CONCAT、SUBSTRING,日期时间函数DATE_FORMAT等),帮助我们进行复杂的数据处理。 七、事务与并发...

    mysql深入浅出

    字符串函数(LIKE, CONCAT, SUBSTRING, REPLACE)处理文本数据;数学函数(ABS, SQRT, PI)进行数值计算;日期和时间函数(DATE, TIME, NOW, DATE_ADD, DATE_SUB)处理日期和时间值。 4. **字符类型**:在MySQL中,...

Global site tag (gtag.js) - Google Analytics