MySQL列名中包含斜杠或者空格的处理方法

栏目: 数据库 · Mysql · 发布时间: 5年前

内容简介:今天客户那边遇到了一个比较奇葩的问题跑来问我,这个问题比较冷门,所以特别记录下。数据库的字段存在斜杠或者空格的时候,怎么用sql进行insert或者select操作。对于这种特殊字符,我们一般想到的是用转义符进行处理,所以试了下"/"、引号、单引号等常见的转义符,发现依然语法错误,又查了下mysql的官方说明:

今天客户那边遇到了一个比较奇葩的问题跑来问我,这个问题比较冷门,所以特别记录下。

问题描述

数据库的字段存在斜杠或者空格的时候,怎么用 sql 进行insert或者select操作。

问题解答

对于这种特殊字符,我们一般想到的是用转义符进行处理,所以试了下"/"、引号、单引号等常见的转义符,发现依然语法错误,又查了下 mysql 的官方说明:

特殊字符位于列名中时必须进行转义,如果列名中包含\t,(,),/,\,=,<,>,+,-,*,^,",',[,],~,#,|,&,% 则必须用中括号括起来。eg:列名为Column#,应写为[Column#];列名包括中括号,必须使用斜杠进行转义,eg:列名为Column[]的列应写为[Column[\]](只有第二个中括号必须转义)。

以中括号的形式进行转义,然后又试了下中括号,发现依然还是不行。

通过搜索,最后找到需要以反引号“`”(一般键盘的左上角数字1左边的那个键)来处理。

其它反引号的用法

之前对反引号几乎没有使用过,所以借此机会搜索总结了下反引号相关的用法。

Linux反引号的作用

特殊的赋值

Shell中可以将数字或字符直接赋予变量,也可以将 Linux 命令的执行结果赋予变量,如下:

(1) $ count=9 #将数字赋予变量count

(2) $ name="ming" #将字符赋予变量name

(3) $ listc=`ls -la` #将Linux命令赋予listc,listc的值就是该命令的执行结果

反引号的作用

反引号的作用就是将反引号内的Linux命令先执行,然后将执行结果赋予变量。尽管可以通过输入字符或者字符串来创建变量值,也可以获取来自于其他Linux命令的值。为把Linux命令的结果赋予变量,实现需要执行这个命令。如果在命令行上把Linux命令放在反引号中,这个命令会首先被执行,其结果会成为命令行的一个参数。在赋值时,通过把命令放在反引号中,以便于首先执行,命令的执行结果会被赋予一个变量。反引号可以被视为由要执行命令组成的表达式,其结果会被赋予变量。组成命令的字符本身不会被赋予。在下面的范例中,命令ls .c被执行,其结果然后被赋予变量listc。ls .c会生成具有.c扩展名的所有文件列表。这个文件列表随后被赋予变量listc。

总结

反引号里面的字符串必须是能执行的命令,否则会出错;它的作用是命令替换,将其中的字符串当成 Shell 命令执行,返回命令的执行结果。

mysql中反引号的作用

为了区分MYSQL的保留字与普通字符而引入的符号

举个例子:SELECT `select` FROM `test` WHERE select='字段值'

在test表中,有个select字段,如果不用反引号,MYSQL将把select视为保留字而导致出错,所以,有MYSQL保留字作为字段的,必须加上反引号来区分。

引号一般用在字段的值,如果字段值是字符或字符串,则要加引号,如:select='字段值'

不加反引号建的表不能包含MYSQL保留字,否则出错

反引号`,数字1左边的符号

保留字不能用于表名,比如desc,此时需要加入反引号来区别,但使用表名时可忽略反引号。

create table desc报错

create table `desc`成功

create table `test`成功

drop table test成功

保留字不能用于字段名,比如desc,此时也需要加入反引号,并且insert等使用时也要加上反引号。

create table `test`(`desc` varchar(255))成功

insert into test(desc) values('fxf')失败

insert into test(`desc`) values('fxf')成功

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

本文永久更新链接地址: https://www.linuxidc.com/Linux/2019-02/156900.htm


以上所述就是小编给大家介绍的《MySQL列名中包含斜杠或者空格的处理方法》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Python Cookbook

Python Cookbook

Alex Martelli、Anna Ravenscroft、David Ascher / 高铁军 / 人民邮电出版社 / 2010-5-1 / 99.00元

本书介绍了Python应用在各个领域中的一些使用技巧和方法,从最基本的字符、文件序列、字典和排序,到进阶的面向对象编程、数据库和数据持久化、 XML处理和Web编程,再到比较高级和抽象的描述符、装饰器、元类、迭代器和生成器,均有涉及。书中还介绍了一些第三方包和库的使用,包括 Twisted、GIL、PyWin32等。本书覆盖了Python应用中的很多常见问题,并提出了通用的解决方案。书中的代码和方......一起来看看 《Python Cookbook》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

随机密码生成器
随机密码生成器

多种字符组合密码