为什么 MySQL return 列名带有引号?
Why MySQL return column name with quotes?
我有这个:
...
SELECT
`id`,
`name`,
`user_id`,
`xml_tables`
...
在进行查询时,我收到了这个:
+- ----+------+---------+------------+
| `id` | name | user_id | xml_tables |
+------+------+---------+------------+
| 1 | name | 1 | xml |
+------+------+---------+------------+
用带引号的 ID 列的名称。
这些不是您要查找的报价。
那些是单引号,它们看起来像这样:
'HELLO'
那些是反引号或:
`HELLO`
MySQL 使用反引号作为列名的分隔符。它们不是名称的一部分,只是在这里显示。
当您使用诸如 GROUP 之类的保留字作为列名时,这会有所帮助。
这将失败:
SELECT Group
FROM UserGroup
这将运行
SELECT `Group`
FROM UserGroup
如果您 运行 如下所示的创建语句,您可能已将反引号作为名称的一部分包含在内:
CREATE TABLE `log`
(
```log_id``` BIGINT(20) NOT NULL AUTO_INCREMENT,
`log_text` LONGTEXT NULL,
PRIMARY KEY (```log_id```)
)
我看到你正在调用一个存储过程。但是你没有在你的程序中显示代码。
我尝试重现问题:
mysql> create procedure sp_read_database(in i int)
-> begin
-> select 123 as `id`, 'name' as `name`, 456 as `user_id`, 'xml tables' as `xml_tables`;
-> end
然后调用MySQL中的程序 Workbench 6.3.9:
我在结果网格的 id
列周围没有看到任何反引号。
我怀疑您的程序包含一些错误的代码格式。如果我在 id
:
的列别名中添加文字反引号,我可以重现您的结果
mysql> create procedure sp_read_database(in i int)
-> begin
-> select 123 as ```id```, 'name' as `name`, 456 as `user_id`, 'xml tables' as `xml_tables`;
-> end
我有这个:
...
SELECT
`id`,
`name`,
`user_id`,
`xml_tables`
...
在进行查询时,我收到了这个:
+- ----+------+---------+------------+
| `id` | name | user_id | xml_tables |
+------+------+---------+------------+
| 1 | name | 1 | xml |
+------+------+---------+------------+
用带引号的 ID 列的名称。
这些不是您要查找的报价。
那些是单引号,它们看起来像这样:
'HELLO'
那些是反引号或:
`HELLO`
MySQL 使用反引号作为列名的分隔符。它们不是名称的一部分,只是在这里显示。
当您使用诸如 GROUP 之类的保留字作为列名时,这会有所帮助。 这将失败:
SELECT Group
FROM UserGroup
这将运行
SELECT `Group`
FROM UserGroup
如果您 运行 如下所示的创建语句,您可能已将反引号作为名称的一部分包含在内:
CREATE TABLE `log`
(
```log_id``` BIGINT(20) NOT NULL AUTO_INCREMENT,
`log_text` LONGTEXT NULL,
PRIMARY KEY (```log_id```)
)
我看到你正在调用一个存储过程。但是你没有在你的程序中显示代码。
我尝试重现问题:
mysql> create procedure sp_read_database(in i int)
-> begin
-> select 123 as `id`, 'name' as `name`, 456 as `user_id`, 'xml tables' as `xml_tables`;
-> end
然后调用MySQL中的程序 Workbench 6.3.9:
我在结果网格的 id
列周围没有看到任何反引号。
我怀疑您的程序包含一些错误的代码格式。如果我在 id
:
mysql> create procedure sp_read_database(in i int)
-> begin
-> select 123 as ```id```, 'name' as `name`, 456 as `user_id`, 'xml tables' as `xml_tables`;
-> end