MySQL日常处理

MySQL中遇到问题汇总:

 

1.mysql与CSV:

           从csv格式导入到workbench中,新建一张表,点击右键,选择 table data import wizard,选择CSV文件,依次next即可;

从workbench中导出成csv格式的文件,选择如下按钮,文件类型选择csv即可。

2.json格式中的中文显示问题(python3下):

def jsonformat(self, list):

imgURL = [json.dumps({'imgURL': URL},ensure_ascii=False) for URL in list]

imgURL = '[{}]'.format(','.join(imgURL))

return imgURL

        我们在post请求数据时,响应的内容是json数据,但是返回的json数据中文显示有问题,变成 \uXXX的形式。这是因为中文以 unicode 编码了,而默认是以ASCII解析的,中文不在ASCII编码中,所以无法显示。

         如果不加 ensure_ascii=False  输出的 imgURL如果有汉字的话都默认给转换成一堆编码 如果加上的话 就都能正常显示变成了汉字。

 

3.数据库表中数据更新中出现问题:

       例如,想要将表中的source设置为统一的字段:“付费模型”,需要以下两句话即可:

SELECT * FROM most3d_db.model1000_test;

alter table most3d_db.model1000_test add column source varchar(300) not null;

UPDATE most3d_db.model1000_test SET source='付费模型' WHERE ID>='1';

        可能会报错,Error Code: 1175 You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column”错误,这是Workbench的安全设置导致的,通过设置就可以处理。(https://jingyan.baidu.com/article/6c67b1d6f0efca2787bb1eba.html

        在workbench的菜单栏点击“edit-->Preferences”,然后会弹出对话框“workbench preferences”,在左边栏点击“SQL Editor”,会看到最后一行是“Safe Updates……”是打钩的,我们只要缺消打钩即可,并重启workbench即可。

4.数据库修改部分数据:

(其他可参考:http://2853725.blog.51cto.com/2843725/1377342

1.删除前一万个数据

delete from most3d_db.3dxy where 1=1 order by ID limit 10000;

2.按照某一项降序排序后删除前100个

delete from most3d_db.3dxy where 1=1 order by ID desc limit 100;

3.更新某部分的数据:

UPDATE models.moer SET description = name where 1=1 order by description asc limit 2000;(不确定修改数目时,按照某一列的值排序,修改前任意项 ,asc 为正序,desc为降序)

UPDATE models.thingiverse SET browse = '0' where id>=1 and id<=1000000 and browse=''(将满足某项条件的数据进行更改)

4.mysql中的字符串连接concat():

update models.yunchuang3d set description= concat(name,",工业零部件") where 1=1;

5.mysql中关于增加主键值并设置自增:(对于已有表增加一列并设置为自增序列其值只能从1开始,如果想对已有表增加自增序列并设置值从某一个具体地数字开始,需要重新建一张表)

CREATE TABLE `thingiverse13` (

`ID` int(11) NOT NULL,

`number` int(11) NOT NULL AUTO_INCREMENT,

`WebpageURL` longtext,

PRIMARY KEY (`number`)

) ENGINE=InnoDB AUTO_INCREMENT =231928 DEFAULT CHARSET=utf8;

INSERT INTO models.thingiverse13 (ID,WebpageURL) SELECT ID,WebpageURL FROM models.thingiverse3

6.mysql中关于后期数据修改,去掉空格、换行符、回车符:

update test_8_28.register_tbl set company = replace(company,' ',' ');

7.空格可以通过mysql 自带的replace来替换,如果是英文字符,注意只能通过将来个空格换成一个空格,不然会造成所有词连在一起

UPDATE models.thingiverse SET description = REPLACE(REPLACE (description, CHAR(10), ''), CHAR(13), '') where id>=1 and id<=1000000;

换行符【char(10)】和回车符【char(13)】

8.mysql中关于后期将一张数据量很大的表分成几张小表:

create table models.thingiverse1 select * from models.thingiverse where id>1 and id<=300000

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值