MySQL查询结果

MySQL Query results

Table 姓名:同学。 Table 我有:

mysql> SELECT * from Students;
+-----------+-------------+-------+
| Rollno    | Name        | Marks |
+-----------+-------------+-------+
| 251602122 | Sumit Tyagi |    70 |
| 251602121 | parveen     |    90 |
+-----------+-------------+-------+

后面的查询returns后面的结果连8都不是属性

mysql> select 8 from Students;
+---+
| 8 |
+---+
| 8 |
| 8 |
+---+

同样

mysql> SELECT 'some_string' from Students;
+-------------+
| some_string |
+-------------+
| some_string |
| some_string |

我只想知道为什么会这样。

您的 table 中每条记录的查询 returns 一行。

但您没有 select 来自这些记录的数据。您只需 select 每行的数字 8。这会被退回。

Select 语句在 table 中查找列名。您可以使用 TableName.ColumnName 确保 SQL 在 table 中查找列名。

在您编写的示例中,您要求从 table 中 return 编辑一个常量或硬编码值 8/some_string,这不是列名称。因此它将 return 您要求的硬编码或常量值,次数等于 table.

中的行数

如果您想确保它查找列名,请使用我提到的 TableName.ColumnName 语法。您还可以为 table 提供别名。所以在上面的例子中,如果你使用语法 as

SELECT Students.8 from Students;

SELECT s.8 FROM Students s;

它将查找列名 8 而不是常量或硬编码值 8.

如果我没记错的话,最好在编写查询时使用 TableName.ColumnNamealias.ColumnName,因为它会检查特定 table.[=20 中的列名=]