阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

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

448次阅读
没有评论

共计 1519 个字符,预计需要花费 4 分钟才能阅读完成。

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

问题描述

数据库的字段存在斜杠或者空格的时候,怎么用 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’) 成功

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计1519字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19348
评论数
4
阅读量
7799030
文章搜索
热门文章
开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南 大家好,我是星哥。之前介绍了腾讯云的 Code...
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板 1Panel:小白轻松构建 Web 服务与面板加固指南 哈喽,我是星哥,经常有人问我不...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
Python自学26 – Cookie和Session

Python自学26 – Cookie和Session

Python 自学 26 – Cookie 和 Session 在学习 Web 开发时,Cooki...
飞牛NAS玩转Frpc并且配置,随时随地直连你的私有云

飞牛NAS玩转Frpc并且配置,随时随地直连你的私有云

飞牛 NAS 玩转 Frpc 并且配置,随时随地直连你的私有云 大家好,我是星哥,最近在玩飞牛 NAS。 在数...
升级自动部署更新SSL证书系统、申请godaddy的APIKEY

升级自动部署更新SSL证书系统、申请godaddy的APIKEY

升级自动部署更新 SSL 证书系统、申请 godaddy 的 APIKEY 公司之前花钱购买的 ssl 证书快...
告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

  告别 Notion 焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁” 引言 在数字笔记工...
【1024程序员】我劝你赶紧去免费领一个AWS、华为云等的主机

【1024程序员】我劝你赶紧去免费领一个AWS、华为云等的主机

【1024 程序员】我劝你赶紧去免费领一个 AWS、华为云等的主机 每年 10 月 24 日,程序员们都会迎来...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛 NAS-12:开源笔记的进化之路,效率玩家的新选择 前言 如何高效管理知识与笔记,已经成为技术...
星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛 NAS 硬件 02:某鱼 6 张左右就可拿下 5 盘位的飞牛圣体 NAS 前言 大家好,我是星...
如何免费使用强大的Nano Banana Pro?附赠邪修的用法

如何免费使用强大的Nano Banana Pro?附赠邪修的用法

如何免费使用强大的 Nano Banana Pro?附赠邪修的用法 前言 大家好,我是星哥,今天来介绍谷歌的 ...
多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞...
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...