LIKE no SQLITE como usar

784 views
Skip to first unread message

Felippe dos Santos Ferreira

unread,
Jun 1, 2013, 4:09:12 PM6/1/13
to androidb...@googlegroups.com
alguem jah usou o LIKE
do SQLITE do android

estou tentando usar mais sem sucesso segue o codigo....



public Cursor getAcessoriaSearchDB(Context context, String search) {
// TODO Auto-generated method stub
String[] args = {search};
String query = "SELECT _id, acess_nome, acess_tag, acess_pdf, acess_video, acess_thumb FROM tbl_acessoria where acess_tag LIKE %?%";
return this.myDataBase.rawQuery(query, args);
}

luciofm

unread,
Jun 1, 2013, 5:05:42 PM6/1/13
to androidb...@googlegroups.com
String where = "COLUNA LIKE ?";
String[] whereArgs = new String[] { "%" + search + "%" };

Lúcio Maciel
luc...@gmail.com


--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

Felippe dos Santos Ferreira

unread,
Jun 1, 2013, 5:55:02 PM6/1/13
to androidb...@googlegroups.com
Lucio muito obrigado....

mais numca usei o args,,,, estou sofrendo um pouco

seria isso?

public Cursor getAcessoriaSearchDB(Context context, String search) {
// TODO Auto-generated method stub
String where = "acess_tag LIKE ?";
String[] whereArgs = new String[] { "%" + search + "%" };
String[] query = {"_id, acess_nome, acess_tag, acess_pdf, acess_video, acess_thumb"};
String table = "tbl_acessoria";
return this.myDataBase.query(true, table, query, null, whereArgs, where, null, null, null);
}

query(boolean distinct, String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy, String limit)



2013/6/1 luciofm <luc...@gmail.com>

--
You received this message because you are subscribed to a topic in the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/androidbrasil-dev/cSxAJaX-gNs/unsubscribe?hl=en-US.
To unsubscribe from this group and all its topics, send an email to androidbrasil-...@googlegroups.com.

Felippe dos Santos Ferreira

unread,
Jun 1, 2013, 7:08:57 PM6/1/13
to androidb...@googlegroups.com
esta buscando agora.. mais não correto...

tem um item que sempre aparece....

mais não sei onde estou errando neste select

Andre Souza

unread,
Jun 1, 2013, 7:49:00 PM6/1/13
to androidb...@googlegroups.com

Nao esta faltando aspas simples? LIKE '%SUA_CONSULTA%'

Felippe dos Santos Ferreira

unread,
Jun 1, 2013, 8:55:05 PM6/1/13
to androidb...@googlegroups.com
tb num foi

String[] whereArgs = new String[] { "'%" + search + "%'" };

é que toda busca sempre aparece um item que num tem nada haver.....


2013/6/1 Andre Souza <deh.o...@gmail.com>

Nao esta faltando aspas simples? LIKE '%SUA_CONSULTA%'

--

Andre Souza

unread,
Jun 1, 2013, 9:01:50 PM6/1/13
to androidb...@googlegroups.com

Voce esta testando direto na sua aplicação? Sugiro baixar um sgbd pro sqlite, criar seu banco la e testar sua sql... dai  vc tem mais chances de descobrir qual eh o problema da consulta. Eu uso o SQLite Maestro, eh mt bom.

Felippe dos Santos Ferreira

unread,
Jun 2, 2013, 3:59:12 AM6/2/13
to androidb...@googlegroups.com
tipo o comando funciona

mais sempre vem um item selecionado... independente do que foi buscado....

vem esse item que nao tem nada ver + item que tem haver com a busca


2013/6/1 Andre Souza <deh.o...@gmail.com>

Voce esta testando direto na sua aplicação? Sugiro baixar um sgbd pro sqlite, criar seu banco la e testar sua sql... dai  vc tem mais chances de descobrir qual eh o problema da consulta. Eu uso o SQLite Maestro, eh mt bom.

--

Andre Souza

unread,
Jun 2, 2013, 9:28:17 AM6/2/13
to androidb...@googlegroups.com

Vc pode exemplificar? Tipo, o que eh q vc ta passando no like e os resultados q tão vindo. Vc tem q saber que quando usa o comando LIKE '%SUA_CONSULTA%' ele vai trazer todos os resultados que tenham em qualquer posição aquela string q vc passou. Por exemplo, digamos que eu tenha 4 nomes no meu bd, Andre, Joao, Jessica e Jose. Se eu fizer uma consulta SELECT * FROM TB_PESSOA WHERE NOME LIKE '%e%' o resultado será Andre, Jessica e Jose, pois todos esses nomes possuem a letra 'E' em alguma posição.

Felippe dos Santos Ferreira

unread,
Jun 2, 2013, 11:15:35 AM6/2/13
to androidb...@googlegroups.com
vou te explicar andre

 //dessa maneira não funciona
// String query = "SELECT _id, acess_nome, acess_tag, acess_pdf, acess_video, acess_thumb FROM tbl_acessoria where acess_tag LIKE '%?%'"

   //dessa maneira funciona com este probleminha
    public Cursor getAcessoriaSearchDB(Context context, String search) {
        // TODO Auto-generated method stub
       
        String where = "acess_tag LIKE ?";
        String[] whereArgs = new String[] { "%" + search + "%" };
        String[] query = {"_id, acess_nome, acess_tag, acess_pdf, acess_video, acess_thumb"};
        String table = "tbl_acessoria";
       
        return this.myDataBase.query(true, table, query, null, whereArgs, where, null, null, null);
    }

tenho 4 produtos no banco.

1 acess_tag = "LLLLL"
2 acess_tag = "maizena"
3 acess_tag = "brigadeiro"
4 acess_tag = "cachoro"

ai dou uma busca com coma palavra = "ca"
Resultado da busca = "LLLLL" e "cachoro"

intendeo andre


Em 2 de junho de 2013 10:28, Andre Souza <deh.o...@gmail.com> escreveu:

Vc pode exemplificar? Tipo, o que eh q vc ta passando no like e os resultados q tão vindo. Vc tem q saber que quando usa o comando LIKE '%SUA_CONSULTA%' ele vai trazer todos os resultados que tenham em qualquer posição aquela string q vc passou. Por exemplo, digamos que eu tenha 4 nomes no meu bd, Andre, Joao, Jessica e Jose. Se eu fizer uma consulta SELECT * FROM TB_PESSOA WHERE NOME LIKE '%e%' o resultado será Andre, Jessica e Jose, pois todos esses nomes possuem a letra 'E' em alguma posição.

--

Andre Souza

unread,
Jun 2, 2013, 12:14:41 PM6/2/13
to androidb...@googlegroups.com
Entendi sim. Realmente, muito estranho.... Mas deve ser alguma besteirinha. Experimenta fazer um teste, faz a query na mao mesmo, escrevendo o select * from... etc etc, e passa o parametro da pesquisa na string. Ve se funciona dessa forma, so faz uma adaptação pra vc. Tipo:

Cursor mCursor = db.rawQuery("SELECT * FROM tbl_acessoria WHERE acess_tag LIKE '%"+seu_parametro+"%' ", null);
List<Acessoria> lista = new ArrayList<Acessoria>();

while (mCursor.moveToNext()) {
    Acessoria acessoria = new Acessoria();
    acessoria.setId(mCursor.getInt(0));
    acessoria.setAcessNome(mCursor.getString(1));
    .....
    .....
    ..... //Seus sets aqui
    lista.add(acessoria); 
}

mCursor.close();
db.close();
return lista;


Espero que te ajude.


--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-...@googlegroups.com.

For more options, visit https://groups.google.com/groups/opt_out.
 
 



--
André Luiz de Oliveira Souza
Engenheiro da Computação
Pós-graduando em Desenvolvimento de Software com ênfase em Java Corporativo

Felippe dos Santos Ferreira

unread,
Jun 2, 2013, 2:39:23 PM6/2/13
to androidb...@googlegroups.com
mesma coisa manu
Reply all
Reply to author
Forward
0 new messages