更新名称中包含点 (.) 的 MySQL 列?
mysqlmysqli database更新于 2023/12/23 5:34:00
如果 MySQL 列名称中包含点 (.),则需要在列名称周围使用反引号。 为了理解上述概念,让我们创建一个表。创建表的查询如下
mysql> create table UpdateDemo -> ( -> UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> `User.FirstName.LastName` varchar(60) -> ); Query OK, 0 rows affected (0.54 sec)
使用 insert 命令在表中插入一些记录。
查询如下
mysql> insert into UpdateDemo(`User.FirstName.LastName`) values('John Smith'); Query OK, 1 row affected (0.14 sec) mysql> insert into UpdateDemo(`User.FirstName.LastName`) values('Adam Smith'); Query OK, 1 row affected (0.12 sec) mysql> insert into UpdateDemo(`User.FirstName.LastName`) values('Carol Taylor'); Query OK, 1 row affected (0.25 sec) mysql> insert into UpdateDemo(`User.FirstName.LastName`) values('Mitchell Johnson'); Query OK, 1 row affected (0.19 sec) mysql> insert into UpdateDemo(`User.FirstName.LastName`) values('David Brown'); Query OK, 1 row affected (0.16 sec) mysql> insert into UpdateDemo(`User.FirstName.LastName`) values('Larry Miller'); Query OK, 1 row affected (0.22 sec)
使用 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; Query OK, 1 row affected (0.19 sec) Rows matched: 1 Changed: 1 Warnings: 00
让我们再次检查表记录。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)