sql查询中有垃圾数据,但仍在执行,但不会影响任何结果为什么?

kx5bkwkv  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(312)

我正在使用mysql server for sql。 Select * from products some_garbage_value; 以及

Select * from products;

得到相同的值。为什么?
在某个\u垃圾\u值处输入任何内容,仍然会得到相同的查询结果。
我已经创建了一个表单来输入查询,该表单由servlet处理,在创建连接之后,我在该servlet上生成查询结果。
这对我的状态不好吗?如果是的话,告诉我,如何摆脱这个错误?这是虫子吗?这会是sql注入的例子吗?

eni9jsuy

eni9jsuy1#

Select * from products some_garbage_value;

这个 some_garbage_value 不是垃圾,是别名。从技术上讲,这意味着对于查询范围,您已经“重命名”了 products 表到 some_garbage_value . 如果您需要消除同一个表的两个匹配项之间的歧义(例如在self join中),或者使查询更可读/更具自解释性(或者更简短),那么这将非常有用。
相当于

Select * from products as some_garbage_value;

另请参阅mysql参考以了解更多信息 select :
这个 FROM table_references 子句指示要从中检索行的一个或多个表。如果命名了多个表,则执行的是联接。有关连接语法的信息,请参阅第13.2.9.2节“连接语法”。对于指定的每个表,可以选择指定别名。

tbl_name [[AS] alias] [index_hint]

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

相关问题