更新名称中包含点(。)的MySQL列?

如果MySQL列名称中包含点(。),则需要在列名称前后使用反引号。为了理解上述概念,让我们创建一个表。创建表的查询如下

mysql> create table UpdateDemo
   -> (
   -> UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   -> `User.FirstName.LastName` varchar(60)
   -> );

使用insert命令在表中插入一些记录。

查询如下

mysql> insert into UpdateDemo(`User.FirstName.LastName`) values('John Smith');
mysql> insert into UpdateDemo(`User.FirstName.LastName`) values('Adam Smith');
mysql> insert into UpdateDemo(`User.FirstName.LastName`) values('Carol Taylor');
mysql> insert into UpdateDemo(`User.FirstName.LastName`) values('Mitchell Johnson');
mysql> insert into UpdateDemo(`User.FirstName.LastName`) values('David Brown');
mysql> insert into UpdateDemo(`User.FirstName.LastName`) values('Larry Miller');

使用select语句显示表中的所有记录。

查询如下

mysql> select *from UpdateDemo;

以下是输出

+--------+-------------------------+
| UserId | User.FirstName.LastName |
+--------+-------------------------+
| 1      | John Smith              |
| 2      | Adam Smith              | 
| 3      | Carol Taylor            |
| 4      | Mitchell Johnson        |
| 5      | David Brown             |
| 6      | Larry Miller            |
+--------+-------------------------+
6 rows in set (0.00 sec)

在包含(。)的列名称User.FirstName.LastName周围使用反引号。

查询如下

mysql> update UpdateDemo set `User.FirstName.LastName`='David Miller' where UserId=5;
Rows matched: 1 Changed: 1 Warnings: 0

让我们再次检查表记录。UserId = 5的行已成功更新。

查询如下

mysql> select *from UpdateDemo;

以下是输出

+--------+-------------------------+
| UserId | User.FirstName.LastName |
+--------+-------------------------+
| 1      | John Smith              |
| 2      | Adam Smith              |
| 3      | Carol Taylor            |
| 4      | Mitchell Johnson        |
| 5      | David Miller            |
| 6      | Larry Miller            |
+--------+-------------------------+
6 rows in set (0.00 sec)