为了账号安全,请及时绑定邮箱和手机立即绑定

我怎样才能得到句子中的确切单词

我怎样才能得到句子中的确切单词

陪伴而非守候 2023-03-17 10:17:10
如果我执行此查询,我将搜索包含以下内容的字段:[水,可乐,7up][可乐、水、7up]所以,即使参数是用大写字母写的,我也想返回这些项目,为此我正在使用这个@Query@Query("SELECT * from drinksList WHERE list LIKE '%'||:name||'%'")我错过了什么?编辑现在我正在使用LIKE %param%,但问题是如果表格是这样的:[水,可乐,7up][可乐、waterera、7up][Waterg3d,可乐,7up][可乐、水23、7up]我想找到“水”,它会显示所有这些记录,我只想找到“水”这个词,不管它是小写还是大写。
查看完整描述

1 回答

?
慕姐8265434

TA贡献1813条经验 获得超2个赞

以下应该有效:-


@Query("SELECT * from drinksList WHERE list||',' LIKE '%'||:name||',%' OR list||',' LIKE :name||',%'")

这基于/使用以下方法进行了测试:-


DROP TABLE IF EXISTS DrinksList;

CREATE TABLE IF NOT EXISTS DrinksList (list TEXT UNIQUE NOT NULL);

INSERT INTO DrinksList VALUES

    ('Water, spicy, coke'),             -- Should be found when searching for water

    ('Coke'),                           -- will not be found when seraching for water

    ('Spicy, water, coke'),             -- Should be found

    ('Coke, spicy, water'),             -- Should be found

    ('wateria, spicyer, cokeer'),       -- should not be found

    ('Water, coke, 7up'),               -- should be found

    ('Coke, waterera, 7up'),            -- should not be found

    ('Waterg3d, coke, 7up'),            -- should not be found

    ('Coke, water23, 7up')              -- should not be found

    ;

SELECT * from drinkslist WHERE list||',' LIKE '%'||'water'||',%' OR list||',' LIKE 'water'||',%';

导致 :-

//img1.sycdn.imooc.com//6413cdc60001c42902270137.jpg

以上已经过测试,它确实在房间里工作:-

所有列表显示:-

//img1.sycdn.imooc.com//6413cdd20001af0103950496.jpg

在编辑文本中输入wAtER并单击“选择”按钮会导致:-

//img1.sycdn.imooc.com//6413cddd0001ec5d02610309.jpg

进入7Up :-

//img1.sycdn.imooc.com//6413cde50001049002030310.jpg

等等。


查询是:-


@Query("SELECT * FROM DrinkList WHERE list||',' LIKE '%'||:name||',%' OR list||',' LIKE :name||',%'")

List<DrinkList> getSelectiveDrinks(String name);


查看完整回答
反对 回复 2023-03-17
  • 1 回答
  • 0 关注
  • 121 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号