错误记录: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` "