错误记录:Unknown column ‘xxx’ in ‘where clause’

这个错误意思是没有找到where分句中的字段名,个人总结存在三种错误情况。判断错误方式可以直接在数据库运行语句,进一步判断是代码问题还是表格问题。

1.符号错误

注意在一些sql版本中,字符串只能用双引号包裹。测试是否是这个错误很简单,直接在数据库中运行语句即可。

如果使用的是单引号,如下(只看sql语句即可)

则运行这SQL语句时会报错

改成双引号后

select * from t_customer where username like"%${value}%"

发现运行成功。

2.多余空格

检查自己在创建表格时引号间是否多余空格,一些数据库的可视化工具是会自动忽略属性空格的,导致这个错误很容易忽略。

这里注意,个人尝试where子句中条件包含空格没有影响,但是查阅一些博客有的有问题。

sql语句如下

不包含空格

select * from t_customer where id=#{id}

3.引号位置

这个是在java代码中使用sql语句会出现的问题。如果使用预编译语句,我们需要使用双引号包裹sql语句,如下,注意引号所包裹内容即可。

String sql="select * from table where username=`jack` "