【发布时间】:2013-09-26 17:20:38
【问题描述】:
我有一个项目表,其中我有一个项目名称,该项目名称可能包含任何特殊字符或任何字母数字值或数字字或特殊字符的任何组合。
现在我需要在其中应用关键字搜索,并且搜索中可能包含任何特殊字符。
所以我的问题是:我们如何在数据库中搜索单个或多个特殊字符?
我正在使用带有 java hibernate api 的 mysql 5.0。
【问题讨论】:
标签: java mysql database spring hibernate
我有一个项目表,其中我有一个项目名称,该项目名称可能包含任何特殊字符或任何字母数字值或数字字或特殊字符的任何组合。
现在我需要在其中应用关键字搜索,并且搜索中可能包含任何特殊字符。
所以我的问题是:我们如何在数据库中搜索单个或多个特殊字符?
我正在使用带有 java hibernate api 的 mysql 5.0。
【问题讨论】:
标签: java mysql database spring hibernate
这应该可以通过对您的查询进行一些简单的清理来实现。
例如:搜索\@(%*#$\ 变为:
SELECT * FROM foo WHERE name LIKE "%\\@(\%*#$\\%";
在评估反斜杠时会转义,以便搜索最终成为包含 "\@(%*#$\" 的任何内容
一般来说,字符串中的任何特殊字符都可以通过反斜杠进行转义。如果你有这样的名字,这只会变得很棘手:"\\foo\\bar\\" 正确转义会变成"\\\\foo\\\\bar\\\\"
附注,请在最终确定之前对您的帖子进行校对。当您的问题标题中有拼写错误时,这真的很令人沮丧并且表现出缺乏努力。
【讨论】: