Ich habe eine Tabelle Ich möchte ersten und letzten Datensatz finden, die Kriterien des jeweiligen Monats erfüllen.Wie finde ich den ersten und letzten Datensatz von Mysql Tabelle
Antwort
Wie wäre es so etwas wie:
select 'first', f1, f2, f3, f4 from tbl
order by f1 asc, f2 asc
limit 1
union all
select 'last', f1, f2, f3, f4 from tbl
order by f1 desc, f2 desc
limit 1
Offensichtlich fühlen sich frei, was Bedingung, die Sie in einer where
Klausel hinzufügen möchten aber die grundlegende Prämisse des order by
ist die Reihenfolge, in den beiden select
Abschnitte zu umkehren.
Die limit
-Klausel erhält in beiden Fällen nur die erste Zeile. Das ist zufällig die letzte Zeile des Satzes in der zweiten select
aufgrund der Tatsache, dass Sie die Reihenfolge umgekehrt haben.
Wenn nur eine Zeile aus Ihren Bedingungen resultiert und Sie nicht möchten, dass sie zweimal zurückgegeben wird, verwenden Sie union
statt union all
.
Was ist mit Klammern? –
@Alexander, ja Klammern sind sehr nett, und haben einen reibungslosen Ablauf über sie. Sie sind auch sehr attraktiv, wenn sie richtig ausbalanciert sind. Allerdings sind sie nicht wirklich notwendig für meine Antwort zu arbeiten, also werde ich sie für jetzt aus der Gleichung lassen :-) – paxdiablo
Ohne Klammern bekomme ich eine Ausnahme 'SQLSTATE [HY000]: Allgemeiner Fehler: 1221 Falsche Verwendung von UNION und ORDER BY " –
Der erste und der letzte Sinn sind nur dann sinnvoll, wenn die Ausgabe der Abfrage nach einem oder mehreren Feldern sortiert ist.
Um den ersten Datensatz zu erhalten:
select col1 from tab1 order by col1 asc limit 1;
den letzten Datensatz zu erhalten:
select col1 from tab1 order by col1 desc limit 1;
select * from table
where id = (select id from tab1 order by col1 asc limit 1) or
id = (select id from tab1 order by col1 desc limit 1);
Die Semikolons in Ihren Unterabfragen werden diese Aussage brechen. – dangermark
SELECT
(SELECT column FROM table WHERE [condition] ORDER BY column LIMIT 1) as 'first',
(SELECT column FROM table WHERE [condition] ORDER BY column DESC LIMIT 1) as 'last'
Das ist für mich gearbeitet, als ich zum ersten Mal und das letzte Datum auszuwählen erforderlich in der Veranstaltungsreihe.
SELECT * FROM (
SELECT first_name, LENGTH(first_name) FROM Employees
ORDER BY LENGTH(first_name) ASC
FETCH FIRST 1 rows ONLY)
UNION
SELECT * FROM (
SELECT first_name, LENGTH(first_name) FROM Employees
ORDER BY LENGTH(first_name) DESC
FETCH FIRST 1 rows ONLY)
ORDER BY 2 desc;
'FETCH FIRST' ist nicht gültig. MySQL-Syntax – FrankerZ
@FrankerZ: Danke für das Zeigen. Ja, das FETCH FIRST ist für Oracle Sql. –
- 1. Wie finde ich einen letzten Datensatz für einen Datensatz in der ersten Tabelle in Mysql
- 2. Mysql Query Group nach letzten Datensatz und ersten Datensatz
- 3. Wie bekomme ich den ersten und letzten Datensatz in PHP
- 4. MySQL - Wählen Sie den letzten Datensatz aus der zweiten Tabelle mit der ersten Tabelle
- 5. Wie bekomme ich den letzten Datensatz von Mysql mit Hibernate?
- 6. So erhalten Sie den ersten und letzten Datensatz des DB
- 7. Wie bekomme ich den ersten und letzten Datensatz von einer SQL-Abfrage?
- 8. Wie wähle ich den letzten Datensatz nach Benutzer in MySQL?
- 9. MySQL letzten Datensatz auswählen und aktualisieren
- 10. Holen Sie sich den ersten Datensatz bis zum letzten Datum
- 11. Wie erhalten Sie den ersten und den letzten Datensatz pro Gruppe in SQL?
- 12. Wie bekomme ich den letzten Datensatz vor dem letzten in mysql?
- 13. Wie bekomme ich den letzten Datensatz von Sqlite?
- 14. Wählen Sie den letzten Datensatz in der Tabelle
- 15. Wie hole ich den ersten und letzten Datensatz eines gruppierten Datensatzes in einer MySQL-Abfrage mit Aggregatfunktionen?
- 16. GROUP BY geben Sie den ersten Datensatz
- 17. den letzten Datensatz der Tabelle erhalten in Auswahlabfrage
- 18. Wie finde ich den neuesten Datensatz in CakePHP?
- 19. Wie finde ich den Zeitstempel der letzten Sperre?
- 20. Wo finde ich den ersten WPF-Tabstopp?
- 21. Wie finde ich den Datensatz in einer Tabelle, die den Maximalwert enthält?
- 22. mysql sql wählen Sie den letzten Datensatz in jeder Gruppe
- 23. Wie bekomme ich den letzten indizierten Datensatz in Solr?
- 24. Wie finde ich den letzten Index der Zeichenfolge in Perl
- 25. Wie finde ich den letzten Tag des Monats?
- 26. Wie finde ich den letzten Positionsparameter in Linux
- 27. Wie wähle ich den ersten oder letzten Wert von Telefonnummern aus?
- 28. VB.net Wie gehe ich zum letzten Datensatz
- 29. Wie kann ich den letzten eindeutigen Datensatz aus einer Tabelle nicht in 1NF abrufen?
- 30. Wie finde ich Datensätze, die in den letzten 24 Stunden zu meiner Datenbanktabelle hinzugefügt wurden?
mehrere Antworten arbeiten, bitte wählen Sie eine –