修改数据库字符集:ALTER DATABASE db_name DEFAULT CHARACTER SET character_name [COLLATE ...];
把表默认的字符集和所有字符列(CHAR,VARCHAR,TEXT)改为新的字符集:ALTER TABLE tbl_name CONVERT TO CHARACTER SET character_name [COLLATE ...]
如:ALTER TABLE logtest CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;只是修改表的默认字符集:ALTER TABLE tbl_name DEFAULT CHARACTER SET character_name [COLLAT...
MySQL基础配置之mysql的默认字符编码的设置(my.ini设置字符编码)MySQL的默认编码是Latin1,不支持中文,那么如何修改MySQL的默认编码呢,下面以设置UTF-8为例来说明.需要注意的是,要修改的地方非常多,相应的修改方法也很多。下面是一种最简单最彻底的方法:一、Windows系统 1、中止MySQL服务 2、在MySQL的安装目录下找到my.ini,如果没有就把my-medium.ini复制为一个my.ini即可 3、打开my.ini以后,在[client]和[mys...
首先我们建立一张带有逗号分隔的字符串。
CREATE TABLE test(id int(6) NOT NULL AUTO_INCREMENT,PRIMARY KEY (id),pname VARCHAR(20) NOT NULL,pnum VARCHAR(50) NOT NULL); 然后插入带有逗号分隔的测试数据INSERT INTO test(pname,pnum) VALUES(‘产品1‘,‘1,2,4‘);INSERT INTO test(pname,pnum) VALUES(‘产品2‘,‘2,4,7‘);INSERT INTO test(pname,pnum) VALUES(‘产品3‘,‘3,4‘);INSERT INTO test(pname,pnum) VALUES(‘...
今天下午一直在弄Mysql字符集的问题,用命令行load导入文本文件数据,中文竟然是乱码。于是我去查看自己Mysql的默认编码是多少输入show variables like ‘character_set_%‘;,我一看也是utf8,数据库及表和字段设置字符均为utf8的格式,在这个问题上纠结了很久,竟然不是Mysql的问题那么就应该是源文件的数据编码有问题了,所以上网查了下Windows默认的txt文本的字符格式为gbk。找到了问题的所在就好了,改变源文件的字符就是了,可...
字段类型为 text,独立出来一张表,用主键来对应,避免影响其它字段索 引效率。 1、因为mysql 是行存储模式,所以会把整行读取出来。text 储存了大量的数据。读取时,占了大量的io。所以会十分的慢。2、每行的数据过大 行溢出 InnoDB 会将一些大对象数据存放在数据页之外的 BLOB 页中,然后在查询时根据指针去对应的 BLOB 页中查询查询变慢 下 参考 : https://blog.csdn.net/zdplife/article/details/94607896原文:https://www.c...
批量替换的具体语法是: 复制代码 代码如下:UPDATE 表名 SET 指定字段 = replace(指定字段, ‘要替换的字符串‘, ‘想要的字符串‘) WHERE 条件; 如果你想把 article 表中 ID 小于5000的记录,content 字段中“解决”替换成“解放”,那么语法就是: 复制代码 代码如下:UPDATE article SET content = replace(content, ‘解决‘, ‘解放‘) WHERE ID<5000; 是不是很方便 :) 网站上面有很多下载连接,之前用的是86端口,现在迁移服务...
查询用逗号分隔的字段,可以用字符串函数FIND_IN_SET(); 查询数据库表中某个字段(值分行显示),可以用函数in()。 今天工作中遇到一个问题,就是用FIND_IN_SET()函数解决的。 第一部分: FIND_IN_SET()函数用法, 查询用逗号分隔的字段, 表A中 go_value字段的值是以逗号分割, 查询 go_value字段中含有3的行: select * from A where find_in_set(‘3‘, go_value); 第二部...
(1) 最简单的修改方法,就是修改mysql的my.ini文件中的字符集键值,如 default-character-set = utf8 character_set_server = utf8修改完后,重启mysql的服务,service mysql restart使用 mysql> SHOW VARIABLES LIKE ‘character%‘;查看,发现数据库编码均已改成utf8复制代码 代码如下:+--------------------------+---------------------------------+ | Variable_name | Value | +--------------------------+-------------...
MySQL中涉及的几个字符集character-set-server/default-character-set:服务器字符集,默认情况下所采用的。 character-set-database:数据库字符集。 character-set-table:数据库表字符集。 优先级依次增加。所以一般情况下只需要设置character-set-server,而在创建数据库和表时不特别指定字符集,这样统一采用character-set-server字符集。 character-set-client:客户端的字符集。客户端默认字符集。当客户端向服务器发送请求...
1. 基于可维护的角度,虽然latin1没什么问题,但是还是尽量换成utf8或者gb系列2. 出现乱码时:SHOW VARIABLES LIKE ‘character%‘SHOW VARIABLES LIKE ‘collation_%‘; set character_set_XXX = utf8//修改编码a、要保证数据库中存的数据与数据库编码一致,即数据编码与character_set_database一致;b、要保证通讯的字符集与数据库的字符集一致,即character_set_client, character_set_connection与character_set_database一致...
mysql 建表时都会设置表的字符集和排序规则,通常是 utf8,不过我这边习惯建表的字符集是 utf8mb4,排序规则是 utf8mb4_unicode_ci。有些 utf8mb4 的表默认排序规则是 utf8mb4_general_ci,导致在联表操作时会报错误:Illegal mix of collations其实这个就是联表时由于表的排序规则不一致才会引起的,这个可以通过将表的排序规则改成一致来解决。但是有时表已经在线上了,无法修改,而现在又要急着用,可以通过下面的方法:UPDATE ...
python脚本中的变量经常会变动,所以考虑写到mysql里面如何获取mysql里面数据作为参数,参考如下脚本:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import MySQLdb
# 打开数据库连接
db = MySQLdb.connect("3.12.5.1", "root", "root", "test", charset=‘utf8‘)
# 使用cursor()方法获取操作游标
cursor = db.cursor()
# 使用execute方法执行sql语句
cursor.execute("select media_source_dir from app_configs a where a.ip_ad...
案例如下:INSERTINTO t_rand(sex)
VALUES (ELT(
CEILING(rand() *2),‘男‘,‘女‘
)
)ELT(n,str1,str2,str3,...) :如果n=1,则返回str1,如果n=2,则返回str2,依次类推。如果n小于1或大于参数个数,返回NULL。ELT()是FIELD()的功能补充函数。mysql>SELECT ELT(3,‘hello‘,‘halo‘,‘test‘,‘world‘);
+--------------------------------------+| ELT(3,‘hello‘,‘halo‘,‘test‘,‘world‘) |+--------------------------...
我今天再mysql中使用||来连接字符串,并没有得到我想要的结果, 原来sql双竖线||是是 逻辑或 的意思,是运算符, 最后用cncat函数实现了字符串的连接。 CONCAT(CONCAT(‘|‘,c.seq_cate),‘|‘)原文:http://hatch.blog.51cto.com/9349645/1689218
mysql编码分为服务端编码和客户端编码两大类字段编码, 表编码, 数据库编码这些编码都属于服务端编码,服务端编码决定你可以存哪些字符以及这些字符要哪种规则排序.字段编码优先级最高. 你插入用什么码属于客户端编码, 你用什么客户端编码都无所谓,只要插入前加个命令set names xxx 就可以了,mysql都会给你转换,你考虑只是客户端编码和服务端编码大小集问题,是否存在映射.(比如服务端编码为GB2312, 客户端编码为BIG5, mysql肯定转换不...