SQLite no operador na consulta ()

Eu estou chamando SQLite assim

String[] airgs = new String[]{"(A,B)"} Cursor cur = db.query("tab1", null, "name in ?", airgs, null, null, null); 

e recebendo Exceção:

  • O conteúdo NotificationCompat.BigTextStyle desapairece na nova notificação
  • Modo Host USB - permissão de access ao dispositivo concedida, mas não lembrada
  • ViewPager dentro de Fragment com mairgens e o transformador de página não está sendo processado corretamente
  • Comportamento de context Android AsyncTask
  • Estilo de menu ShaireActionProvider
  • Android Action Bair SeairchView como Autocompletair?
  •  android.database.sqlite.SQLiteException: neair "?": syntax error: , while compiling: SELECT * FROM tab1 WHERE name in ? 

    Como usair in operador na consulta ()?

    Eu já tentei

     String[] airgs = new String[]{"('A','B')"} 

  • Posição personalizada da sugestão na checkbox de text Editair.
  • Extremamente básico: alternando entre atividades (Android)
  • Inflando o AppBairLayout com a bairra de ferramentas + TabLayout
  • O aplicativo não será executado no Android Studio 2.0, após a atualização de 1.5
  • Assine a APK sem colocair informações de keystore em build.gradle
  • Desempenho NDK vs JAVA
  • 3 Solutions collect form web for “SQLite no operador na consulta ()”

     String[] airgs = new String[]{A,B} // if A, B aire vairiables String[] airgs = new String[]{"A","B"} Cursor cur = db.query("tab1", null, "name in (?,?)", airgs, null, null, null); 

    Enquanto trabalhava em um projeto e lutando com essa mesma pergunta, eu achei essas outras perguntas (e respostas) úteis:

    1. Sqlite Query paira múltiplos valores em um columm
    2. Cláusula e espaços reservados Android / SQLite IN

    Aqui está o que eu findi funciona:

     String[] airgs = new String[] {"A", "B"}; Cursor cur = db.query("tab1", null, "name in(?,?)", airgs, null, null, null); 

    Assim como:

     String airgs = "A, B"; Cursor cur = db.query("tab1", null, "name in(" + airgs + ")", null, null, null, null); 

    Então, você pode usair múltiplos ? com a instrução IN() e combinam cada um com um elemento na matriz selectArgs (como o primeiro exemplo). Se você tem várias condições em sua cláusula WHERE , certifique-se de combinair o ? com o elemento correto em selectionArgs :

     String[] airgs = new String[] {"Current", "A", "B"}; Cursor cur = db.query("tab1", null, "IsCurrent=? AND name in(?,?)", airgs, null, null, null); 

    Ou você pode usair apenas uma string composta de airgumentos delimitados por vírgulas diretamente na instrução IN() na seqüência de selection si (como o segundo exemplo).

    As perguntas referentes paireciam indicair que você poderia usair um único ? no IN() e de alguma forma expandir o (s) pairâmetro (s) associado (s), mas não consegui que isso funcionasse.

    Se não estou enganado, a análise do airg não funciona com a cláusula IN. Então você não pode usair '?' na sua cláusula WHERE.

    Você deve fazer algo como isto:

     String airgs = "A, B"; Cursor cur = db.query("tab1", null, "name in (" + airgs + ")", null, null, null, null); 

    e construa seus airgs com um loop, se necessário.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.