我需要从名为key
的id键的查询中返回一个多维数组。 (在amazon S3 API中对象键所需)
示例:
Array ( [0] => Array ( [key] => 8 ) [1] => Array ( [key] => 7 ) [2] => Array ( [key] => 6 ) )
问题:key
是MySQL中的保留名称。我 使用名称密钥。
以下查询给出错误
SELECT `file_name` AS key FROM (`uploads`)
但在key
周围添加反贴词不会出错
SELECT `file_name` AS `key` FROM (`uploads`)
继续这样或有更好的方法是否安全?我想在PHP中重命名数组中的id键,但在查询中执行它似乎更快
答案 0 :(得分:2)
如上所述,请使用反引号。
如果您按第9.2节“模式对象名称”中所述引用保留字,则允许使用保留字作为标识符:
mysql> CREATE TABLE interval (begin INT, end INT);
ERROR 1064 (42000): You have an error in your SQL syntax ...
near 'interval (begin INT, end INT)'
mysql> CREATE TABLE `interval` (begin INT, end INT);
Query OK, 0 rows affected (0.01 sec)
答案 1 :(得分:1)
要远离查询中的表字段周围的保留关键字始终被视为最佳方式...如果您在查询中使用保留关键字,那么backtick
允许您使用保留关键字...
由于backtick
标准中未定义ANSI SQL
,因此从MySQL环境迁移时可能会产生问题......