在select语句'AS'中使用包含多个用空格分隔的单词的字符串会产生任何缺点吗?

时间:2016-09-08 00:02:54

标签: mysql mysql-workbench

一般情况下,在使用SQL语句时,通常会遇到类似:

的内容
SELECT COUNT( * ) AS `rowCount` FROM `someTable`;

如果我们按如下方式编写查询,那么技术或风格指南是否有任何缺点:

SELECT COUNT( * ) AS `Row count` FROM `someTable`;

或者:

SELECT COUNT( * ) `rowCount` FROM `someTable`;

VS

SELECT COUNT( * ) `Row count` FROM `someTable`;

我在我们给结果列的名称中具体询问空格

在任何编程语言中使用此查询时,这可能会产生问题吗?

2 个答案:

答案 0 :(得分:2)

这取决于您在获取列时尝试访问列的方式。

在PHP中,如果将行提取到对象(而不是关联数组)中,则别名将成为对象属性。访问名称中包含空格的属性并不方便。而不是

$row->rowCount

你必须写:

$row->{"Row count"}

但是,在大多数MySQL API中访问列的最常用方法是使用某种关联数组或字典。在这种情况下,

之间差别不大
$row['rowCount']

$row['Row count']

因为您必须将别名放在引号中。

答案 1 :(得分:1)

如果您将空格放入标识符中,那么每次使用时都必须分隔它们。

如果您没有在标识符中添加空格,也不使用标点字符,非ASCII字符,并且不使用SQL reserved words,那么您可以选择使用标识符而不分隔它。