Java jsp中的筛选器字符串不使用括号[]
我有一个jsp页面,它向servlet发送请求,根据选定的下拉值筛选表中某列的结果,该下拉值由对MSSQL数据库的SQL查询填充。现在我遇到了一个问题,下拉列表中的一个项目有括号(something[某物]),出于某种原因,当我选择该项目并筛选表时,它将不会返回任何结果,即使在筛选之前该项目明显显示了数据行。下面是我现在在jsp页面上看到的过滤器下拉列表:Java jsp中的筛选器字符串不使用括号[],java,sql,jsp,Java,Sql,Jsp,我有一个jsp页面,它向servlet发送请求,根据选定的下拉值筛选表中某列的结果,该下拉值由对MSSQL数据库的SQL查询填充。现在我遇到了一个问题,下拉列表中的一个项目有括号(something[某物]),出于某种原因,当我选择该项目并筛选表时,它将不会返回任何结果,即使在筛选之前该项目明显显示了数据行。下面是我现在在jsp页面上看到的过滤器下拉列表: <select title="Something Filter" name="${MODULE.REQUEST_SOMETHING}"
<select title="Something Filter" name="${MODULE.REQUEST_SOMETHING}"
id="${MODULE.REQUEST_SOMETHING}" tabindex="30"
onkeydown="typeSelect(this, -1, 'xbin', 1);" onchange="clearTTID();"
onblur="clearTTID();">
<option value=""></option>
<c:forEach items="${requestScope.something}" var="row">
<option value="${row.something}"
<c:set var="setSelected" value="${row.something }" />
<c:if test="${requestScope.something eq setSelected}">selected</c:if>
>${row.something}</option>
</c:forEach>
</select>
${row.something}
所有其他项目都可以正常工作,仅使用文本、数字或括号,筛选器将按预期的项目对表进行筛选。您需要使用
[]
转义开括号[
。因此,如果您要查找名称t[t]
,您的查询将是
select * from student where name like '%t[[]t]%'
更新
第二种方法是在开放式支架上使用escape选项[
(这对我来说是新的,呜呜)
你能发布你的SQL吗?你尝试过什么?
select * from student where name like '%t\[t]%' escape '\'