我有这个:
...
SELECT
`id`,
`name`,
`user_id`,
`xml_tables`
...
在进行查询时,我回忆一下:
+- ----+------+---------+------------+
| `id` | name | user_id | xml_tables |
+------+------+---------+------------+
| 1 | name | 1 | xml |
+------+------+---------+------------+
带有引号的ID列的名称。
答案 0 :(得分:2)
我看到你正在调用存储过程。但是你没有在你的程序中显示代码。
我试图重新创建问题:
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
答案 1 :(得分:1)
这些不是您要查找的报价。
这些是单引号,它们看起来像这样:
'HELLO'
这些是反击或:
`HELLO`
MySQL使用反引号作为列名称的分隔符。它们不是此处显示的名称的一部分。
当您使用GROUP等保留字作为列名时,这会有所帮助。 这将失败:
SELECT Group
FROM UserGroup
这将运行
SELECT `Group`
FROM UserGroup
如果您运行如下所示的create语句,则可能已将反引号包含在名称中:
CREATE TABLE `log`
(
```log_id``` BIGINT(20) NOT NULL AUTO_INCREMENT,
`log_text` LONGTEXT NULL,
PRIMARY KEY (```log_id```)
)