欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

mySQL常见错误

程序员文章站 2022-05-18 15:44:04
...

一、使用命令行进行查询时中文显示为乱码:

在命令行模式下,使用select 语句查询表中数据时,若表中数据存在中文那么显示的就是乱码,而且insert中文的时候也会报错: Incorrect string value: '\xB0\xCB' for column 'name' at row 1,如图:
mySQL常见错误
            
    
    博客分类: MySql MySQL命令行查询时中文乱码命令行insert时报错添加/删除前缀和后缀delete 

这是数据库编码格式格式的:set names uft8。再查询就会显示正常,而且insert也能成功。

mySQL常见错误
            
    
    博客分类: MySql MySQL命令行查询时中文乱码命令行insert时报错添加/删除前缀和后缀delete 
 

2、delete语句:

SQL Server中,删除语句可以用delete .....,也可以用delete from...,也就是使用"delete test where id=1"和"delete from test where id=1" 效果是一样滴,都可以删除数据。

但是在MySql里面,必须得用delete from....才能删除数据,直接使用delete...会报错。

 

3、添加后缀或前缀:

为一个字段添加后缀或前缀,譬如说为table1的field2字段添加前缀abc,后缀abc。

使用SQL Server很简单,就像JS中的拼接一样:

前缀:update table1 set field2='abc'+field2 where field1=1;

后缀:update table1 set field2=field2+'abc' where field1=1;

MySQL里面,这么添加会报错,得使用concat函数进行添加。

前缀:update table1 set field2=concat('abc',field2) where field1=1;

后缀:update table1 set field2=concat(field2,'abc') where field1=1;

 

4、去除前缀或后缀:

SQL Server里面可以使用stuff函数,

删除前缀:update test set field2=stuff(field2,1,3,'') where field1=1;

删除后缀:update test set field2=stuff(field2,7,3,'') where field1=1;

stuff()函数四个参数简析:

param1:要删除的字符串;

param2:从哪个下标开始删除,下标从1开始

param3:删除的字符串的个数

param4:在删除字符串的地方插入的字符串

所以上面删除前缀和后缀的原理就是:前缀中abc在最前面,所以下标从1开始,删除3个,删除完成之后插入空格,这样子前缀就没有了。也因此,后缀abc的下标就从7开始了。

当然也可以用substring()函数,这个函数更简单:

substring()函数三个参数简析:

param1:要进行截取的字符串

param2:从哪个下标开始截取,下标从1开始

param3:截取的长度。

因此,删除前缀和后缀的方法为:

前缀:update test set field2=substring(field2,4,len(field2)-3) where field1=1;
后缀:update test set field2=substring(field2,1,len(field2)-3) where field1=1;

前缀删除中,abc在最前面,所以下标从1开始,截取“字符串的长度减去abc的长度”,也就是len(field2)-3。删除前缀之后,直接从第一个字符开始截取,其长度为字符串长度减去最后的三个字符串长度。

 

MySQL中也可以用substr函数,用法与SQL Server相同,但是我们也可以用right()函数,这个函数与substring差不多,它用来返回字符串的最右面指定个数的字符。因此,删除前缀比较简单,删除后缀有点费劲此时就可以用substring来处理:

前缀:update test set field2=right(field2,length(field2)-3) where field1=1;

后缀:update test set field2=substr(field2,1,len(field2)-3) where field1=1;

  • mySQL常见错误
            
    
    博客分类: MySql MySQL命令行查询时中文乱码命令行insert时报错添加/删除前缀和后缀delete 
  • 大小: 11.5 KB
  • mySQL常见错误
            
    
    博客分类: MySql MySQL命令行查询时中文乱码命令行insert时报错添加/删除前缀和后缀delete 
  • 大小: 12.5 KB