小编给大家分享一下如何解决unknown column in where clause的问题,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!
但凡写过sql语句的人估计都曾经碰到过类似于Unknown column ‘xxx’ in ‘where clause’的问题。 单从字面理解,我们很容易得出列名不存在的结论。这说明sql语句编写不正确,需要进行检查、修改。
但是,很多时候其实并不是由于列名出错造成的。
我总结了以下几点造成Unknown column 'id' in 'where clause'的原因,希望对大家有所帮助。
1.数据库字段名与实体类属性名不一致
相信大家平时都比较仔细,很少会产生这种问题,但有时候情况可能并不如意,数据库字段名可能会有空格,导致大家百思不得其解,小编今天就遇到了这种情况。
如图中所示,看似没什么问题,但却因字段名前面有空格,导致字段名与与属性名不一致,如果大家有遇到这种情况,希望对大家有所帮助。
2.由于拼凑sql语句时对字符类型数据没有用引号引起来造成的
例子:
String sql="select age from user where name="+xxx+";
设置name的值为columName,则错误如下:
Unknown column ′xxx′ in ′where clause′
解决步骤:
sql中如果name是整型的倒不会出现什么错误,而如果sql中字符串类型必须要包含在引号内。
所以修改sql为
String sql="select age from user where name=′"+xxx+"′";
则错误消失。