4.30-暨4月下半月错误点、知识点总结

2021/4/30 18:56:45

本文主要是介绍4.30-暨4月下半月错误点、知识点总结,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1、字段名可以加特殊符号吗?可以

比如字段名是name;

crate table tb(`name;` string)

 

2、mysql 错误对比

 

插入数据

报错:

1)需要13个参数,但是query只提供了12个

占位符有13个,但数据源只提供了12个字段

 

2)Column count doesn't match value count at row 1

列数目和所要插入的值的个数不匹配

说白了就是人家有13个字段,但是你多insert into的时候,多给了值或者少给了值

 

我当时是,表字段有id主键,自增的。

我以为不需要插入,但是我有个固定值

比如字段为

id,isvalid,name,age

我的语句是

insert into tb values(1,?,?)====>insert into tb values(1,'tom',18)

它可能是将我的1固定值给当成了id,所以我提供了3列值,但是它有4列

正确写法:给出确切的列名,不要省略,只有当全列名插入的时候,才可以省略

insert into tb (isvalid,name,age) values(1,?,?)

 

 

3)No value specified for parameter 5

这里是说它需要五个参数,你有一个参数没有,这个时候仔细检查下,源表字段和数据,一般是漏掉字段或者字段没有为null

 

3、特殊符号处理

导数据到mysql时,有些内容,是客户输入的emoji表情,一般数据库编码为utf8格式的

这种不能很好支持,所以导数据会报错,可以更改数据库编码、数据表、数据字段为utf8mb4、

这种变动需要更改mysql,重启mysql对生产业务影响还是蛮大的

 

或者跟业务沟通好,符号表情  征得业务同意可进行替换,将特殊符号替换掉:替换的语句是:

regexp_replace(title,'[^A-Za-z0-9_,?.。,?;;\\\u4e00-\\\u9fa5]','')

 

4、distinct 去重

select distinct id,name,age

是按照id、name、age同时一样,再进行去重,不是按照id去重,取id、name、age

 

5、windows上写的脚本,要改一下编码unix,utf-8 无bom格式的,不然放到linux上执行会报错

比如符号出错什么的

 

6、character '' not supported here

检查脚本文件编码unix,utf-8 无bom格式

把脚本复制到notepad++中,视图-显示符号-显示空格和制表符

正常空格会显示为红色的· 而不是其他的,仔细检查有无特殊符号

还可以显示其他或者全部的符号,进行仔细检查

 

7、插入(更新)为json字符串字段的属性

主键若存在,则更新,

主键若不存在,则插入。

 

insert into student values('102','hgc','28',CONCAT('{"attr2":','"18-19"}'))

ON DUPLICATE KEY UPDATE pro=json_set(pro,'$.attr2','30-35')

 

移除属性:

update student set pro = json_remove(pro,'$.attr2') where id='102'

 

8、实践为王道

实践是检验真理的唯一标准

当需求来临时,不会不要慌,没做过不要急

弄清楚需求,源数据、目标数据、原始现象、结果现象

现有资源,所缺资源

当问你能不能做出来,会的话说能当然很好,不会也不要说不能

试着说:我先根据你提供的资料或者需求,进行一下方案设计

之后给你一个回复~

当不确定结果的时候,就以实践证明,实际得出结论。



这篇关于4.30-暨4月下半月错误点、知识点总结的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程