在SQL查询中使用%

时间:2011-02-14 04:52:35

标签: java sql

SELECT MAX(sm_version) AS version_latest, 
       user_type       AS role_performed 
FROM   usage_database 
WHERE  user_id LIKE ( '"+%eid_upper+"' ) 
        OR user_id LIKE ( '"+eid_lower+"' ) 
GROUP  BY user_type 

这是我的查询。我以这样的方式设计了数据库,我必须在查询中%。如果我在SQL开发人员上执行此查询,那么它可以正常工作。但是当我在Java代码中执行此操作时,我将其放入JSP文件中,然后发生以下错误:

  

令牌“%”上的语法错误,无效的表达式

我做错了什么,如何解决?

3 个答案:

答案 0 :(得分:4)

WHERE  user_id LIKE ( '%"+eid_upper+"' )

答案 1 :(得分:1)

使用预准备语句和绑定变量!

 where user_id like ( '%' || ? )

答案 2 :(得分:0)

我对JSP不好,但是如果要将它用作SQL通配符,%不应该成为查询字符串的一部分吗?,即

WHERE  user_id LIKE ( '%"+eid_upper+"' ) 

编辑:关于SQL注入的常见评论,yada yada yada