Java jsp中的筛选器字符串不使用括号[]

Java jsp中的筛选器字符串不使用括号[],java,sql,jsp,Java,Sql,Jsp,我有一个jsp页面,它向servlet发送请求,根据选定的下拉值筛选表中某列的结果,该下拉值由对MSSQL数据库的SQL查询填充。现在我遇到了一个问题,下拉列表中的一个项目有括号(something[某物]),出于某种原因,当我选择该项目并筛选表时,它将不会返回任何结果,即使在筛选之前该项目明显显示了数据行。下面是我现在在jsp页面上看到的过滤器下拉列表: <select title="Something Filter" name="${MODULE.REQUEST_SOMETHING}"

我有一个jsp页面,它向servlet发送请求,根据选定的下拉值筛选表中某列的结果,该下拉值由对MSSQL数据库的SQL查询填充。现在我遇到了一个问题,下拉列表中的一个项目有括号(something[某物]),出于某种原因,当我选择该项目并筛选表时,它将不会返回任何结果,即使在筛选之前该项目明显显示了数据行。下面是我现在在jsp页面上看到的过滤器下拉列表:

<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 '\'