为什么即使列在表中不存在,sql也会给出结果?

时间:2019-05-21 05:42:00

标签: mysql sql

我在SQLite3中使用MySql,我只想检查表中是否存在列? 为此,我使用了“选择并尝试捕获”命令,但是每当我给列名称使用数字如1,'2'“ 3”时,它会返回具有相同数字的列,例如1,2,3,而不会显示错误,为什么? / p>

select 20 from Student;

20
20
20
20
20
20

显示20直到我的实际Student表中存在行数。

2 个答案:

答案 0 :(得分:1)

我了解到用数字值设置列名称不是一件好事,但是如果您的列名称确实是数字值,则应在查询中添加反引号\反引号。例如:

SELECT `20` FROM Student;

这样,如果该列不存在,则会出现以下错误:

Error Code: 1054
Unknown column '20' in 'field list'

答案 1 :(得分:0)

SHOW COLUMNS FROM `table` LIKE 'fieldname';

对于MySQL,如果该列存在,则将返回该列的信息,其中table是您的表名,而'fieldname'是该列名。如果该列不存在,它将不返回任何内容