0

我想在数据库中搜索$!(%&'^%$&'%^&&'^'%'

我尝试了以下查询,但仍然显示错误:

select * from data
where data1 LIKE \'$!(%&'^%$&'%^&&'^'%'\'

select * from data
where data1 LIKE '$!(%&'^%$&'%^&&'^'%''

select * from data
where data1 LIKE '$!(%&\'^%$&\'%^&&\'^\'%\''

select * from data
where data1 LIKE '$!(%&\\'^%$&\\'%^&&\\'^\\'%\\''

select * from data
where data1 LIKE '$!(%&\'^%$&\'%^&&\'^\'%\'' ESCAPE '\'
4

2 回答 2

1

谢谢你们。
我得到了答案。

String originalString = "$!(%&'^%$&'%^&&'^'%'";
String convertedString = DatabaseUtils.sqlEscapeString(num);

将此convertedString 作为参数传递给查询。

于 2012-12-06T10:56:26.613 回答
0

SQLite 的文档

可以通过将两个单引号放在一行中来对字符串中的单引号进行编码

所以把你的单引号加倍,像这样:

select * from data
where data1 LIKE "$!(%&''^%$&''%^&&''^''%''"

但老实说,我不得不多读一点,看看我是否漏掉了任何其他特殊字符......

于 2012-12-05T07:07:11.730 回答