日志查询(模糊查询),输入删除,新增,修改,不能查询到数据,因为数据库type里面存的是1,2,3数字,没有对应的文字。若输入1,2,3,可以查询到对应数据。现在要求:输入删除,新增,修改文字,查到对应数据,不要输入1,2,3该怎么样操作。下面是表数据,其中type中1代表删除,2代表新增,3代表修改。
解决方式:用到sql里面的case函数。
SELECT * from (
select id,create_time,des,interface_name,host,ip,user_id,user_name,delete_flag,CASE type when -1 THEN ‘不限’
WHEN 0 then ‘注销’
WHEN 1 then ‘登录’
WHEN 2 then ‘新增’
WHEN 3 then ‘删除’
WHEN 4 then ‘修改’
WHEN 5 then ‘查询’
WHEN 6 then ‘接口调用’
WHEN 7 then ‘其它’
end as type from bd_log
) t WHERE concat_ws(",",id,create_time,des,interface_name,host,ip,user_id,user_name,type,delete_flag
) LIKE “%新增%”
错误2:SSM里报
Cause: java.sql.SQLException: Invalid value for getInt() - ‘P000011’
原因:查询到的字段没有和Vo里字段类型没有匹配。解决方式:查看xml里面配置,Vo和查询字段的对应关系。