gpt4 book ai didi

android - 不能在 Android 应用程序中使用 like 子句

转载 作者:IT王子 更新时间:2023-10-29 06:19:21 25 4
gpt4 key购买 nike

我正在使用 sqllite 在 android 应用程序中处理数据库我想使用 like 子句检索 sm 数据例如:

Cursor c = myDB.query(MY_DATABASE_TABLE, null, " SongName LIKE '%"+"=?"+"%'" , 
new String[]{match_str}, null, null,"SongHit DESC");

它应该给出所有以 match_str 开头的歌曲名称,但它不起作用。为什么?

最佳答案

这个:

" SongName LIKE '%"+"=?"+"%'"

当 SQL 解释器看到它时,最终看起来像这样:

" SongName LIKE '%=?%'"

这将匹配任何包含文字“=?”的歌曲名称而且我认为那不是您想要的。

% 匹配 SQL LIKE 中的任意字符序列,它本质上与正则表达式中的 .* 相同;所以,如果你想在开头匹配,那么你不需要前导 %。此外,您的 ? 占位符需要在单引号之外,否则它将被解释为文字问号而不是占位符。

你想要更像这样的东西:

String[] a = new String[1];
a[0] = match_str + '%';
Cursor c = myDB.rawQuery("SELECT * FROM songs WHERE SongName LIKE ?", a);

如果你想变得非常严格,你还必须在 match_str 中转义 %_ 符号,但剩下的就是给读者的练习。

关于android - 不能在 Android 应用程序中使用 like 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5752575/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com