Note that there are some explanatory texts on larger screens.

plurals
  1. POSQLite query only returning 1 result per argument in WHERE clause
    primarykey
    data
    text
    <p>I'm trying to query my SQLite DB for all rows that have a particular "city" column.</p> <p>The following code iterates through a List of cities and creates a WHERE clause.</p> <pre><code>w = PlacesProvider.KEY_CITY + " IN " + "(" + "'" + PlacesSearch.currentCity.get(0) + "'"; for (int i = 1; i &lt; PlacesSearch.currentCity.size(); i++) { w = w + ", " + "'" + PlacesSearch.currentCity.get(i) + "'"; } w = w + ")"; //Result looks like "city IN ('city1', 'city2')" // Get ContentResolver ContentResolver cr = getContentResolver(); // Get Cursor Cursor c = cr.query(PlacesProvider.CONTENT_URI, null, w, null, null); </code></pre> <p>I've also tried this WHERE clause which gives the exact same result.</p> <pre><code>w = PlacesProvider.KEY_CITY + " = " + "'" + PlacesSearch.currentCity.get(0) + "'"; for (int i = 1; i &lt; PlacesSearch.currentCity.size(); i++) { w = w + " OR " + PlacesProvider.KEY_CITY + " = " + "'" + PlacesSearch.currentCity.get(i) + "'"; } //Result looks like "city = 'city1' OR city = city2 OR city = city3" </code></pre> <p>Then I iterate through the results and use the data:</p> <pre><code>if (c.moveToFirst()) { do { //Do some stuff } while (c.moveToNext()); } </code></pre> <p>The problem is that the query only returns 1 row from each city. If I leave the field null there are plenty of results in each city so I know there are more stored in the DB.</p> <p>What is wrong here? It's my first time using SQL.</p> <p>Thanks.</p> <p>Update:</p> <pre><code>"city IN ('Victoria', 'Saanich', 'Oak Bay')" "city='Victoria' OR city='Oak Bay' OR city='Saanich'" </code></pre> <p>These are the values of w I've tried.</p> <p>Update 2:</p> <pre><code>SELECT * FROM coffeeshops WHERE city = 'Victoria' UNION SELECT * FROM coffeeshops WHERE city = 'Oak Bay' UNION SELECT * FROM coffeeshops WHERE city = 'Saanich' </code></pre> <p>I've used rawQuery as suggested and constructed the above statement. These changes aren't reflected in the code above. There are no errors when I run it but the result is the same. I tried using UNION instead and I still get only 1 row for each city. I'm really at a loss here.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload