MySQLmysql 字符替换换问题

mysql中替换字符串
UPDATE pe_rewrite_url AS pru SET pru.dest_url =
REPLACE(dest_url,'&tid=36','') ;
将pe_rewrite_url表中dest_url中所有涉及到"&tid=36"的字符串去除。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。MySql 学习(250)
MySql Developer(27)
我现在t表有如下数据:
将name包含jiao的行内容更新为jiaojiao:
update t set name=REPLACE(name,'jiao','jiaojiao')
更新后查询:
ajiaojiaoand
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:556182次
积分:9466
积分:9466
排名:第1495名
原创:306篇
转载:599篇
评论:71条
(5)(26)(15)(17)(12)(25)(30)(28)(27)(32)(34)(14)(5)(27)(13)(2)(25)(33)(41)(37)(3)(19)(16)(10)(7)(13)(23)(14)(23)(9)(14)(18)(24)(10)(16)(12)(4)(12)(15)(23)(23)(18)(7)(31)(25)(17)(9)(6)(8)(5)(8)(2)(1)(11)(7)&&/&&&&/&&&&/&&
MySQL的安装
安全和SQL Mode
SQL语句和表的优化
其他优化措施
Mysql字符集|为Mysql选择合适的字符集
字符集概述
字符集是一套符号和编码的规则,不论是在oracle数据库还是在mysql数据库,都存在字符集的选择问题,而且如果在数据库创建阶段没有正确选择字符集,那么可能在后期需要更换字符集,而字符集的更换是代价比较高的操作,也存在一定的风险,所以,我们推荐在应用开始阶段,就按照需求正确的选择合适的字符集,避免后期不必要的调整。
Mysql支持的字符集简介
mysql服务器可以支持多种字符集(可以用show character set命令查看所有mysql支持的字符集),在同一台服务器、同一个数据库、甚至同一个表的不同字段都可以指定使用不同的字符集,相比oracle等其他数据库管理系统,在同一个数据库只能使用相同的字符集,mysql明显存在更大的灵活性。
mysql的字符集包括字符集(CHARACTER)和校对规则(COLLATION)两个概念。字符集是用来定义mysql存储字符串的方式,校对规则则是定义了比较字符串的方式。字符集和校对规则是一对多的关系, MySQL支持30多种字符集的70多种校对规则。
每个字符集至少对应一个校对规则。可以用SHOW COLLATION LIKE 'utf8%';命令查看相关字符集的校对规则。
Unicode简述
Unicode是一种编码规范。我们在这里简述一下Unicode编码产生的历史。
先从ASCII码说起,ASCII码也是一种编码规范,只不过ASCII码只能最多表示256个字符,是针对英文产生的,而面对中文、阿拉伯文之类的复杂文字,256个字符显然是不够用的。于是各个国家或组织都相继制定了符合自己语言文字的标准,比如gb2312、big5等等。但是这种各自制定自己的标准的做法显然是有很多弊端的,于是Unicode编码规范应运而生。
Unicode也是一种字符编码方法,不过它是由国际组织设计,可以容纳全世界所有语言文字的编码方案。Unicode的学名是&Universal Multiple-Octet Coded Character Set&,简称为UCS。UCS可以看作是&Unicode Character Set&的缩写。
Unicode有两套标准UCS-2和UCS-4,前者用2个字节表示一个字符,后者用4个字节表示一个字符。以目前常用的UCS-2为例,它可以表示的字符数为2^16=65535,基本上可以容纳所有的欧美字符和绝大多数亚洲字符。
怎样选择合适的字符集
我们建议在能够完全满足应用的前提下,尽量使用小的字符集。因为更小的字符集意味着能够节省空间、减少网络传输字节数,同时由于存储空间的较小间接的提高了系统的性能。
有很多字符集可以保存汉字,比如utf8、gb2312、gbk、latin1等等,但是常用的是gb2312和gbk。因为gb2312字库比gbk字库小,有些偏僻字(例如:常┎荒鼙4妫虼嗽谘≡褡址氖焙蛞欢ㄒê庹庑┢ё衷谟τ贸鱿值募嘎室约霸斐傻挠跋欤荒茏龀隹隙ù鸶吹幕白詈醚∮gbk。
Mysql字符集的设置
mysql的字符集和校对规则有4个级别的默认设置:服务器级、数据库级、表级和字段级。分别在不同的地方设置,作用也不相同。
服务器字符集和校对,在mysql服务启动的时候确定。可以在my.cnf中设置:
& & [mysqld]
& & default-character-set=utf8
或者在启动选项中指定:
& & mysqld --default-character-set=utf8
或者在编译的时候指定:
& & ./configure --with-charset=utf8
如果没有特别的指定服务器字符集,默认使用latin1作为服务器字符集。上面三种设置的方式都只指定了字符集,没有指定校对规则,这样是使用该字符集默认的校对规则,如果要使用该字符集的非默认校对规则,则需要在指定字符集的同时指定校对规则。
可以用show variables like 'character_set_server';命令查询当前服务器的字符集和校对规则。2205人阅读
纠结我很久的文章乱码问题今天终于得到解决了。我发现只有空格(&)会乱码。因此今天着手替换。仔细对比后发现是&没有被转义造成的。因此开始搜索替换字符。最终的解决方案是
UPDATE &`info_article` SET &`arcontent` = REPLACE( &`arcontent`, &'&', &'&' ) WHERE &`arcontent` LIKE &'%&%'
老习惯,顺便转载一下我搜到的原文(来自:)
学习最好的方法莫过于实践,最快的途径莫过于示例,这段时间网站搬家,迫使我不断去看一些SQL操作方法,最终记载于此,以便将来参考。
1、时间操作
例:将GMT时间更改为GMT+8,可用INTERVAL把一段时间加到一个字段上。
UPDATE `wpcn_posts` SET `post_date` = `post_date_gmt` + INTERVAL 8 HOUR WHERE `post_date_gmt` = `post_date`
本例是为了对付Bo-Blog搬家到WP时大部分时间记录都没有被正确转换到GMT+8时区的问题。
2、字符查找替换
例:将某个图片的错误文件名更改为正确文件名。
UPDATE `wpcn_comments` SET `comment_content` = REPLACE ( `comment_content`, 'emot/ok', 'emot/pig' ) WHERE `comment_content` LIKE '%emot/ok%'
本例是为了对付Bo-Blog的pig.gif图片文件名被错误替换为ok.gif的问题,用到了REPLACE函数和LIKE操作符,注意LIKE后面的字段用%%匹配,而非*。
----------------------------------------------------
使用replace函数直接替换mysql数据库中某字段中的特定字符
UPDATE `table_name` SET `field_name` = replace (`field_name`,'from_str','to_str') WHERE &`field_name` LIKE '%from_str%'
table_name && 表的名字
field_name && 字段名
from_str && 需要替换的字符串
to_str && 替换成的字符串
  目的是为了直接用sql操作数据库修改字段中的某些字串!
----------------------------------------------------------
3、用R帮忙
例:批量更新日志的永久链接。
cat(sprintf("UPDATE `wpen_posts` SET post_name = '%s' WHERE ID =%d;", x[, 3], x[, 1]), sep = "/n")
由于我不知道SQL里面如何用数组或向量,因此在批量处理的时候就用笨办法执行了,即:写n条SQL语句一起执行。R一向都是向量化操作,因此只需要把日志的ID和post_name准备好,然后用一个sprintf()就生成所有的SQL语句了,扔到phpMyAdmin中执行一下,所有的日志链接就更新了,省得把每一篇日志打开依次修改。
以上R语句生成如下结果:
UPDATE `wpen_posts` SET post_name = 'tidy-up-your-r-code' WHERE ID =1; UPDATE `wpen_posts` SET post_name = 'dare-be-defeated' WHERE ID =2; ....
插一句,对于英文日志,永久链接就是把空格替换为-,用正则表达式删掉不是[:alnum:]的字符即可。
4、用mysqldump备份数据库
这个命令可以以多种形式备份MySQL数据库,这里举例将数据库备份为*.sql的SQL语句脚本:
mysqldump -u db_user -p -r result_filename.sql database_name
由于mysqldump命令是独立的程序,所以不要先登录进mysql界面,直接在终端或command窗口运行即可。这样的备份文件可以在将来在mysql中用source命令导入:
source result_filename.sql
这样看来备份数据库也是很容易的事情,不过导入导出的时候可能会遇到编码问题。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:15592次
排名:千里之外
原创:14篇
(1)(8)(3)(1)(1)(4)}

我要回帖

更多关于 mysql字符串替换函数 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信