Ho una tabella in cui una colonna è una stringa con tre caratteri, ogni carattere ha un valore 0 o 1. Vorrei selezionare quelle righe in base al caso.La query con LIKE non funziona con GreenDAO
mi piacerebbe per eseguire una query del genere:
SELECT * FROM Item WHERE group_type LIKE ?
? può essere 100 o 101 o 011 o 111 o 001. Una combinazione con 0 e 1 in tre caratteri.
Sto cercando di query utilizzando COME
WhereCondition where = null;
switch (condition) {
case case1:
where = ItemDao.Properties.GroupType.like("1%");
break;
case case2:
where = ItemDao.Properties.GroupType.like("%1%");
break;
case case3:
where = ItemDao.Properties.GroupType.like("%1");
break;
}
List<Item> items = itemDao.queryBuilder().where(where).list();
case1 sta tornando tutto ciò che inizia con 1 come previsto. case3 restituisce tutto ciò che termina con 1 come previsto. case2 restituisce tutto! Non importa il valore all'inizio, al centro o alla fine. Sta restituendo tutto.
case1 e case3 funzionano correttamente. Tuttavia, case2 non funziona. C'è qualche problema con quello?
È necessario approfondire come esattamente il case2 non funziona? Qual è l'output ..? – Vucko
Ho modificato la mia domanda. Si prega di dare un'occhiata –
Beh, c'è da aspettarsi, ognuno di questi numeri contiene un 1. Non significa che ** deve ** avere qualcosa prima e dopo di esso,% 1% significa che può, ma non deve avere qualcosa prima e dopo. – Vucko