sql-query 中有垃圾数据,但它仍在执行,尽管不影响任何结果。为什么?

There is garbage data in sql-query but it is still executing, although not affecting any results. Why?

我正在为 sql 使用 mysql 服务器。
Select * from products some_garbage_value;

Select * from products;

结果相同。为什么?

在some_garbage_value处随便输入,还是一样的查询结果。

我创建了一个表单来输入查询,该表单由 servlet 处理,在创建连接后,我在该 servlet 上生成查询结果。

这对我的表单来说是坏事吗?如果是,请告诉我,如何摆脱这个错误?这是一个错误吗?会不会是SQL注入的情况?

Select * from products some_garbage_value;

some_garbage_value不是垃圾,是别名。从技术上讲,这意味着对于查询范围,您有 'renamed' 次出现 products table 到 some_garbage_value。如果您需要在两次出现的相同 table 之间消除歧义(例如在自连接中),或者使您的查询更多 readable/self-explanatory(或更短),这将非常有用。

相当于

Select * from products as some_garbage_value;

另见 MySQL reference for select:

The FROM table_references clause indicates the table or tables from which to retrieve rows. If you name more than one table, you are performing a join. For information on join syntax, see Section 13.2.9.2, “JOIN Syntax”. For each table specified, you can optionally specify an alias.

tbl_name [[AS] alias] [index_hint]

这不适用于任何值:它必须是语法上有效的标识符。