Sehen Sie sich die 100 höchsten Punktzahlen der Spielgeschichte an SQL-Code WÄHLEN Sie ps.* VON cdb_playsgame ps, WO ps.credits=(wählen Sie MAX(credits) VON cdb_playsgame ps1 wobei ps.uid=ps1.uid UND ps.gametag=ps1.gametag) UND ps.gametag='yeti3' GROUP BY ps.uid, sortiert nach ps.credits, desc LIMIT 100; SQL-Code Wählen Sie ps.* VON cdb_playsgame ps,(wählen Sie ps1.uid, ps1.gametag, MAX(credits) als Credits VON cdb_playsgame ps1 gruppieren nach uid,gametag) t WO ps.credits=t.credits UND ps.uid=t.uid UND ps.gametag=t.gametag UND ps.gametag='yeti3' GROUP BY ps.uid, sortiert nach ps.credits, desc LIMIT 100; Die Ausführungszeit beträgt nur 0,22 Sekunden und ist damit 10.000-mal schneller als die ursprünglichen 25 Sekunden. Überprüfen Sie das beste Spielergebnis des Tages SQL-Code SELECT ps. * , mf. * , m.Benutzername VON cdb_playsgame ps LEFT JOIN cdb_memberfields mf ON mf.uid = ps.uid LEFT JOIN cdb_members m ON m.uid = ps.uid WO ps.gametag = "chuansj" UND FROM_UNIXTIME(ps.dateline, '%Y%m%d') = '20081008' UND ps.credits = ( Wählen Sie MAX(ps1.credits) VON cdb_playsgame ps1 WO ps.uid = ps1.uid UND ps1.gametag = "chuansj" UND FROM_UNIXTIME(ps1.dateline, '%Y%m%d') = '20081008') GRUPPE NACH ps.uid ORDER BY Credits DESC GRENZE 0 , 50 Wie in der Abfrage: UND ps.credits=(SELECT MAX(ps1.credits) VON {$tablepre}playsgame ps1, wobei ps.uid=ps1.uid UND ps1.gametag = '$game' UND FROM_UNIXTIME(ps1.dateline, '%Y%m%d') = '$todaytime' ) Besonders zeitaufwendig Auch wie: FROM_UNIXTIME(ps1.dateline, '%Y%m%d') = '$heutezeit' Eine solche Anweisung führt dazu, dass der Index ungültig wird, da der Wert jeder Datenzeile mithilfe der Funktion berechnet und wie folgt angepasst werden muss: SQL-Code UND ps1.dateline >= UNIX_TIMESTAMP('$todaytime') //Nach der Änderung SELECT ps. * , mf. * , m.Benutzername VON cdb_playsgame ps, cdb_memberfields mf, cdb_members m, ( SELECT ps1.uid, MAX( ps1.credits ) AS Credits VON cdb_playsgame ps1 WO ps1.gametag = "chuansj" UND ps1.dateline >= UNIX_TIMESTAMP( '20081008' ) GRUPPE NACH ps1.uid ) AS t WO mf.uid = ps.uid UND m.uid = ps.uid UND ps.gametag = "chuansj" UND ps.credits = t.credits UND ps.uid = t.uid GRUPPE NACH ps.uid ORDER BY Credits DESC GRENZE 0 , 50 Notieren Sie für jeden Spieler die Spielernummer, den Namen und die Anzahl der Geldstrafen, die er erhalten hat, jedoch nur für die Spieler, die mindestens zwei Geldstrafen erhalten haben. Für eine kompaktere Abfrage platzieren Sie eine Unterabfrage in der FROM-Klausel. SQL-Code WÄHLEN SIE SPIELERNR., NAME, NUMMER VON (SPIELERNR.,NAME AUSWÄHLEN, (ANZAHL AUSWÄHLEN(*) VON STRAFEN WO STRAFEN.SPIELERNR = SPIELER.SPIELERNR) ALS NUMMER AB ZANGE) ALS PN WO ZAHL>=2 Die Unterabfrage in der FROM-Klausel ermittelt für jeden Spieler die Spielernummer, den Namen und die Strafnummer. Anschließend wird diese Zahl zu einer Spalte im Zwischenergebnis. Anschließend wird eine Bedingung angegeben (NUMBER>=2); abschließend werden die Spalten in der SELECT-Klausel abgerufen. Zusammenfassen Dies ist der gesamte Inhalt dieses Artikels zur Beispielanalyse von MySQL-Unterabfragen und verschachtelten Abfrageoptimierungen. Ich hoffe, er wird für alle hilfreich sein. Interessierte Freunde können sich hier informieren: Beispiele für Optimierungstechniken für die Effizienz langsamer Unterabfragen der MySQL IN-Anweisung, eine kurze Erörterung der Effizienz der Union und IN-Unterabfragen von MySQL usw. Wenn es Mängel gibt, hinterlassen Sie bitte eine Nachricht und der Herausgeber wird diese rechtzeitig beheben. Vielen Dank, Freunde, für Ihre Unterstützung von 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: js realisiert 3D-Soundeffekte durch audioContext
>>: Verwenden Sie die Befehle more, less und cat in Linux, um Dateiinhalte anzuzeigen
In Vue haben wir im Allgemeinen Front-End- und Ba...
In diesem Artikelbeispiel wird der spezifische Co...
1. Setzen Sie den HTML-Code der Maskenebene und d...
Der IE hat uns in der frühen Entwicklungsphase Ko...
Inhaltsverzeichnis Was sind Spread- und Rest-Oper...
1. Gehen Sie zunächst auf die offizielle Website,...
Dieser Artikel stellt den Beispielcode zur Implem...
Szenariobeschreibung In einem bestimmten System w...
Der folgende Code führt MySQL ein, um einige Feld...
1. Entfernen Sie Backslashes mit der Methode „str...
Jeden Tag ein jQuery-Plugin – um einen Suchverlau...
login.html-Teil: <!DOCTYPE html> <html l...
Inhaltsverzeichnis 01 ReplicaSet-Architektur 02 E...
# enthält eine Standortinformation. Der Standardan...
Vorherige Das ist eine klassische alte Frage. Da ...