Utilizar el operador OR con 2 marcadores de posición con el mismo valor

Soy un recién llegado a la programación de Android y en busca de ayuda con mi consulta. Estoy tratando de encontrar todos los accesorios donde el id de un equipo seleccionado es igual al equipo de casa team_1_id o equipo de visitante team_2_id

Tengo la siguiente consulta, es sólo devolver los resultados donde el id es team_1_id y no team_2_id

 public List < Fixture > getTeamFixtures(int id) { List < Fixture > fixtureList = new ArrayList < Fixture > (); // Select All Query String selectQuery = " SELECT fixtures.id, fixtures.team_1_id, fixtures.team_2_id, fixtures.date, fixtures.time, fixtures.pitch, teams.team_name, teams_1.team_name AS awayTeam, leagues.league_name, leagues.id FROM fixtures INNER JOIN teams ON fixtures.team_1_id = teams.id INNER JOIN teams AS teams_1 ON fixtures.team_2_id = teams_1.id INNER JOIN teams_vs_leagues ON teams.id = teams_vs_leagues.team_id INNER JOIN leagues ON teams_vs_leagues.league_id = leagues.id WHERE fixtures.team_1_id = ? OR fixtures.team_2_id = ? "; SQLiteDatabase db = this.getWritableDatabase(); Cursor cursor = db.rawQuery(selectQuery, new String[] { String.valueOf(id) }); // looping through all rows and adding to list if (cursor.moveToFirst()) { do { Fixture fixture = new Fixture(); fixture.setId(Integer.parseInt(cursor.getString(0))); fixture.setTeamId1(Integer.parseInt(cursor.getString(1))); fixture.setTeamId2(Integer.parseInt(cursor.getString(2))); fixture.setDate(cursor.getString(3)); fixture.setTime(cursor.getString(4)); fixture.setPitch(cursor.getString(5)); fixture.setTeamName1(cursor.getString(6)); fixture.setTeamName2(cursor.getString(7)); fixture.setLeagueName(cursor.getString(8)); fixture.setLeagueId(Integer.parseInt(cursor.getString(9))); // Adding team to list fixtureList.add(fixture); } while (cursor.moveToNext()); } // close inserting data from database db.close(); // return fixturelist return fixtureList; } 

Siempre que intento

 WHERE fixtures.team_1_id = ? 

O

 WHERE fixtures.team_2_id = ? 

La consulta devuelve los resultados relevantes, pero quiero poder ver si el id aparece en team_1_id o team_2_id

Cualquier ayuda sería muy apreciada.

2 Solutions collect form web for “Utilizar el operador OR con 2 marcadores de posición con el mismo valor”

Como se documenta , puede reutilizar un parámetro dándole un número explícito:

 ... WHERE fixtures.team_1_id = ?1 OR fixtures.team_2_id = ?1 ... 

O dándole un nombre:

 ... WHERE fixtures.team_1_id = :TeamID OR fixtures.team_2_id = :TeamID ... 

Puede utilizar in :

 WHERE ? in (fixtures.team_1_id, fixtures.team_2_id) 
  • Android SQLite - selecciónArgs que no sean cadenas
  • Cómo proteger una base de datos sqlite pre hecho en android?
  • Cómo escribir una base de datos en un archivo de texto en android
  • Recuperar el último registro en la tabla SQLite (de nuevo)
  • La base de datos de Android recrea cada vez que se inicia la aplicación
  • Android sqlite: cómo recuperar datos específicos de la columna en particular?
  • Almacenamiento de datos grandes local o en línea para la aplicación de Android?
  • ¿Cuál es el propósito de FeedReaderContract y cómo definir la clase interna en OpenHelper Class
  • Android json analizar y almacenar en la base de datos
  • Mantener los datos SQLite después de la actualización
  • Android rawquery con cláusula Where dinámica
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.