2016-03-25 3 views
0

ich eine Tabelle Kunden haben, die die folgenden Spalten hat,Sqlite holen einen bestimmten Wert nicht innerhalb der angegebenen Grenze

user_name,current_id,id,params,display,store. 

ich eine Abfrage wie dies schreibe,

SELECT * FROM Customer WHERE user_name='Mike' AND current_id='9845' AND id='Get_Owner' AND params='owner=1' order by(display) limit 6 offset 0 

Nun gibt es Zeiten, wenn ich einen bestimmten Wert holen möchte, der nicht in den ersten sechs ist und ich möchte diesen bestimmten Wert holen und 5 Werte auf die gleiche Weise wie oben ruhen lassen, wie kann ich das tun?

Zum Beispiel möchte ich so etwas wie diese

SELECT * FROM Customer WHERE user_name='Mike' AND current_id='9845' and id='Get_Owner' AND params='owner=1' AND stored='Shelly.Am' 

I Shelly.Am und anderen 5-Wert wie meine erste Abfrage

+0

Ich glaube, dass Sie Ihren Beitrag klarer durch die konsequente Bezugnahme auf databse Bedingungen machen könnten. zB denke ich _... und rest 5 Werte ...._ (was impliziert, dass es andere Spalten in der Tabelle gibt) sollte vielleicht _.... sein und die 5 verbleibenden ** Zeilen ** ..._ – MikeT

Antwort

-1

Wie Sie verwendet haben * alle Spalten sind von der Abfrage soll.

Wenn Sie sagen, dass Sie manchmal andere Werte abfragen möchten, haben Sie eine separate Abfrage.

Wenn Sie versuchen, die Abfrage programmatisch zu ändern, verwenden Sie if-Anweisungen, um schrittweise die Variablenaspekte der Abfrage zu erstellen. Sie können auch jeden Code verwenden, den Sie haben, und die entsprechenden Tags verwenden, damit die Benutzer die verwendete Programmiersprache kennen.

I scheint, dass Sie die Logik der WHERE Klausel umkehren können versuchen, (um die anderen Reihen zu bekommen), wenn ja, dann NICHT

WHERE NOT user_name="Mike" ....... 
0

Sie zB versuchen, zwei Abfragen unter Verwendung eines compound query kombinieren. Die ORDER BY/LIMIT-Klauseln auf die gesamte Verbindung Abfrage gelten würden, so dass die zweite Abfrage in eine Unterabfrage bewegt werden muss:

SELECT * 
FROM Customer 
WHERE user_name='Mike' 
    AND current_id='9845' 
    AND id='Get_Owner' 
    AND params='owner=1' 
    AND stored='Shelly.Am' 
UNION ALL 
SELECT * 
FROM (SELECT * 
     FROM Customer 
     WHERE user_name='Mike' 
     AND current_id='9845' 
     AND id='Get_Owner' 
     AND params='owner=1' 
     AND stored!='Shelly.Am' 
     ORDER BY display 
     LIMIT 5); 
Verwandte Themen