gpt4 book ai didi

java - 需要 SQLite 查询帮助

转载 作者:行者123 更新时间:2023-12-01 20:21:43 25 4
gpt4 key购买 nike

我在 listView 中显示客户信息,其中仅显示将账单输入数据库的客户,如下所示。

query = "SELECT * FROM clients" +
" WHERE LOWER(" + COLUMN_BILLONE + ") NOT LIKE LOWER('bill') OR" +
" LOWER(" + COLUMN_BILLTWO + ") NOT LIKE LOWER('bill') OR" +
" LOWER(" + COLUMN_BILLTHREE + ") NOT LIKE LOWER('bill') OR" +
" LOWER(" + COLUMN_BILLFOUR + ") NOT LIKE LOWER('bill');";

现在我正在尝试向 listView 添加搜索功能,用户可以像这样输入客户名称或地址的任何部分。

query = "SELECT * FROM clients" +
" WHERE LOWER(" + COLUMN_BILLONE + ") NOT LIKE LOWER('bill') OR" +
" LOWER(" + COLUMN_BILLTWO + ") NOT LIKE LOWER('bill') OR" +
" LOWER(" + COLUMN_BILLTHREE + ") NOT LIKE LOWER('bill') OR" +
" LOWER(" + COLUMN_BILLFOUR + ") NOT LIKE LOWER('bill') AND" +
" LOWER(" + COLUMN_NAME + ") LIKE LOWER('%" + inputText + "%') OR" +
" LOWER(" + COLUMN_ADDRESS + ") LIKE LOWER('%" + inputText + "%');";

这在一半的时间里有效。它起作用的时间是当您只输入姓名而不是地址中的字母时。但是,如果您搜索地址的任何部分,它不仅会显示有账单的客户,还会显示没有账单的客户。

如何更改我的查询语句,以便当用户在一个查询中搜索姓名或地址时仅向客户显示输入的帐单?

编辑

我刚刚注意到,当我输入名称时,搜索功能也不会过滤名称!

编辑

我将在此处包含一些搜索结果图片

before search results after search results

这是当您取出查询的帐单部分时搜索功能的工作原理 before search after search

最佳答案

将附加 block 放在括号“()”之间的AND之后。这样,当最后两个条件中的任何一个为真时, and 之后的 block 将为真。

query = "SELECT * FROM clients" +
" WHERE LOWER(" + COLUMN_BILLONE + ") NOT LIKE LOWER('bill') OR" +
" LOWER(" + COLUMN_BILLTWO + ") NOT LIKE LOWER('bill') OR" +
" LOWER(" + COLUMN_BILLTHREE + ") NOT LIKE LOWER('bill') OR" +
" LOWER(" + COLUMN_BILLFOUR + ") NOT LIKE LOWER('bill') AND" +
" (LOWER(" + COLUMN_NAME + ") LIKE LOWER('%" + inputText + "%') OR" +
" LOWER(" + COLUMN_ADDRESS + ") LIKE LOWER('%" + inputText + "%'));"

关于java - 需要 SQLite 查询帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44600532/

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