【发布时间】:2013-02-21 13:31:43
【问题描述】:
我不是经常使用 like 子句,但现在我有一个要求,我想根据它的名称获取一些文件。 我试过了
"SELECT * FROM FILES WHERE FILENAME LIKE "+"%"+"?"+"%";
接下来我尝试转义字符
"SELECT * FROM FILES WHERE FILENAME LIKE "+"\\%"+"?"+"\\%";
我创建准备好的语句并执行其给出错误的两种方式,
请帮助我如何使用 % ?
提前致谢
【问题讨论】:
-
请发布错误信息。否则我们怎么知道出了什么问题?
-
你试过
"SELECT * FROM FILES WHERE FILENAME LIKE '%?%'"吗? EDIT 注意 ' 字符 -
这是错误信息Message 'You have an error in your SQL syntax;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 '%'co'%' 附近使用正确的语法 2013-02-21 18:51:47,445 ERROR [STDERR] com.mysql.jdbc.exceptions。 jdbc4.MySQLSyntaxErrorException:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 '%'co'%' 附近使用正确的语法
-
它的语法无效,因为准备好的语句将替换 ?带有“paramValue”(包括引号)。因此 % 必须在参数值内
-
是的,我试过了,您是否尝试过“SELECT * FROM FILES WHERE FILENAME LIKE '%?%'”,即使它给出了一个错误,即所需参数的数量为 0,所以它没有检测到?
标签: java mysql prepared-statement