[RUBY] [Grober Kommentar] Ich möchte die Zupfmethode heiraten

Es ist plötzlich ...

① Stellen Sie sich einen "Kollegen vor, der enorm arbeiten kann" in Ihrer Nähe. ② Deine "Frau". Oder denken Sie an eine "ideale Frau (männlich)".

Eine Methode, die beide zusammenführt. Ich kann enorm arbeiten, aber fröhlich und weich. Das ist die diesmal eingeführte "Zupfmethode".

(... Es tut mir leid, dass ich es ernst mache.)

Überblick

Dieser Beitrag

  1. Was für eine Methode ist das Zupfen?
  2. Wann kann gezupft werden?

Ich werde darüber erklären. (* Dieser Artikel ist nutzlos für diejenigen, die die Zupfmethode bereits beherrschen.)

Was für eine Methode ist Zupfen?

Abschließend __ __ Methode zum Abrufen des Werts einer Spalte in einem Array.

Nehmen wir als Beispiel eine Tabelle.

Benutzertabelle (ID, Name, Alter)

id name age
1 ken 21
2 takuya 22
3 masato 29
4 kouta 24
5 hirokatsu 23
6 yuuhei 28
7 takumi 25
8 akihito 26

Wenn Sie beispielsweise eine solche Tabelle haben, können Sie die Zupfmethode verwenden.

users_controller.rb


@users = User.pluck(:id)

#Ausgabeergebnis unten
@users = [1, 2, 3, 4, 5, 6, 7, 8]

Auf diese Weise kann durch Festlegen von __model name.pluck (Spaltenname) __ der Inhalt dieser Spalte als Array abgerufen werden.

Sie können auch ein zweites Argument angeben ...

users_controller.rb


@users = User.pluck(:id, :name) #Geben Sie den Namen als zweites Argument an

#Ausgabeergebnis unten
@users = [ [1, "ken"],[2, "takuya"],[3, "masato"],[4, "kouta"],
[5, "hirokatsu"],[6, "yuuhei"],[7, "takumi"],[8, "akihito"] ]

Es ist auch möglich, mehrere Argumente auf diese Weise zu übergeben und sie als Array abzurufen. Selbst wenn Sie das 3. und 4. Argument übergeben, erhalten Sie dasselbe wie ein Array.

Übrigens, da es sich um ein Array handelt, unterscheidet sich die Erfassungsmethode geringfügig.

users_controller.rb


@users = User.pluck(:id, :name) #Geben Sie den Namen als zweites Argument an


@users[0][1] = "ken" #Erstes Array[1,"ken"]Weil es das zweite Element von ist"ken"Erhalten
@users[3][0] = 1  #4. Array[4,"kouta"]Holen Sie sich 1, weil es das erste Element von ist

Sie können den Inhalt so erhalten.

Was können Sie mit der Zupfmethode tun?

Was können Sie also mit der Zupfmethode tun?

Sie können überprüfen, ob in einer Spalte ein bestimmter Datensatz vorhanden ist

Wenn Sie beispielsweise herausfinden möchten, ob das Benutzermodell 24 Jahre alte Daten enthält,

users_controller.rb


User.where(age: 24).exists?
# => true

Sie können es bekommen, indem Sie die oben genannten Schritte ausführen, aber wenn Sie die Zupfmethode verwenden

users_controller.rb


User.pluck(:age).include?(24)
# => true

Sie können es mit einem Ausdruck wie diesem erhalten. __ "... Nein, welches ist in Ordnung?" __, aber für diese beiden benutze ich Zupfen. Ich werde den Grund als nächstes erklären.

Die Datenerfassungsgeschwindigkeit wird verbessert

Auf den ersten Blick sehen die Ergebnisse der beiden obigen Formeln gleich aus. Die durchgeführte Verarbeitung und die Anzahl der erfassten Daten sind jedoch völlig unterschiedlich.

users_controller.rb


User.where(age: 24).exists?

↓ Hier ist die Abfrage (Anweisung für SQL), die zu diesem Zeitpunkt ausgegeben wird ↓

MySQL


User Exists? (0.6ms)  SELECT 1 AS one FROM `users` WHERE `users`.`age` = 24 LIMIT 1
=> true

Was passiert also, wenn Sie die Zupfmethode verwenden?

users_controller.rb


User.pluck(:age).include?(24)

↓ Klicken Sie hier für die ausgegebene Abfrage (Befehl an SQL) ↓

MySQL


(0.5ms)  SELECT `users`.`age` FROM `users`
=> true

Sehen Sie, dass es offensichtlich kurz ist? Die Verarbeitungszeit unterscheidet sich ebenfalls um 0,1 Millisekunden.

Im ersten Fall untersuchen wir, "ob es einen 24-jährigen Benutzer gibt" Letzterer untersucht, "ob im Alter des Benutzers Daten für 24 Jahre vorliegen".

Mit anderen Worten, durch Zupfen __ Sie können nur die Spalten abrufen, die Sie benötigen. Dies bedeutet, dass Ihre Abfrage kürzer und schneller ist. __.

Je mehr Daten Sie haben, desto größer ist der Unterschied in der Verarbeitungsgeschwindigkeit. Für diejenigen, die sagen: "Ich habe ein Portfolio erstellt, aber die Verarbeitung ist etwas schleppend ...", warum nicht die Beschreibung der Datenerfassung überprüfen?

Zusammenfassung

① Die Zupfmethode ist die __ "Methode zum Abrufen des Werts einer bestimmten Spalte in einem Array" __ (2) Durch die Verwendung von Zupfen wird in einigen Fällen die unbrauchbare Ausgabe von Abfragen unterdrückt und die Verarbeitungsgeschwindigkeit verbessert.

Ich hoffe, Sie können die Güte der Zupfmethode auch nur ein wenig verstehen ... Danke, dass du bis zum Ende zugesehen hast.

Recommended Posts

[Grober Kommentar] Ich möchte die Zupfmethode heiraten
Ich habe versucht, die Methode zu erklären
Ich möchte eine Methode aufrufen und die Nummer zählen
Ich möchte eine andere Desinfektionsmethode als Ansicht verwenden.
Ich wollte der Methode @VisibleForTesting hinzufügen
Ich war süchtig nach der Rollmethode
Ich möchte das Argument der Annotation und das Argument der aufrufenden Methode an den Aspekt übergeben
[Ruby] Ich möchte einen Methodensprung machen!
Ich möchte den Inhalt der Absicht var_dump
Wenn Sie die Methode außerhalb verwenden möchten
Ich möchte nach dem Dezimalpunkt abschneiden
Ich möchte den Wert in Ruby erhalten
Ich möchte eine Methode einer anderen Klasse aufrufen
[Java] Ich möchte die Differenz zum Datum berechnen
Ich möchte eine TraceId in das Protokoll einbetten
Ich möchte den Bereich anhand des monatlichen Abschlusses beurteilen
Ich möchte die Antwort der Janken-App wissen
Ich möchte den Namen des Posters des Kommentars anzeigen
Ich möchte den Dunkelmodus mit der SWT-App verwenden
Ich möchte die Bildlaufposition von UITableView zurückgeben!
Ich möchte die Protokollausgabe unter Android vereinfachen
Ich möchte der Kommentarfunktion eine Löschfunktion hinzufügen
Was ist die Zupfmethode?
Ich möchte Zeichen konvertieren ...
[Anfänger] Ich möchte die Migrationsdatei ändern.
[Rails] [Bootstrap] Ich möchte die Schriftgröße entsprechend ändern
(´-`) .. oO (Ich möchte die Standardausgabe" Hallo "leicht finden.
Ich möchte Tomcat auf den Server bringen und die Anwendung starten
Ich möchte die Protokollausgabeeinstellung von UtilLoggingJdbcLogger ändern
Ich möchte die Java 8 DateTime-API (jetzt) langsam verwenden.
Ich möchte ein Formular erstellen, um die Kategorie [Schienen] auszuwählen
Ich möchte das JDK auf meinem Mac-PC installieren
Ich möchte dem select-Attribut einen Klassennamen geben
Ich möchte die Liste der Klassen unter dem Paket rekursiv durchsuchen
Ich möchte im gespeicherten Zustand zum selben Bildschirm wechseln
Ich möchte mehrere Rückgabewerte für das eingegebene Argument zurückgeben
[Ruby] Ich möchte die Reihenfolge der Hash-Tabelle umkehren
Ich möchte den Startbefehl mit Docker-Compose an Postgres übergeben.
Ich möchte die if-else-Anweisung für bedingte Verzweigungen in Java vereinfachen
Verwendung der link_to-Methode
Ich möchte nur dem Poster Bearbeitungs- und Löschberechtigungen erteilen
Verwendung der include? -Methode
Verwendung der Methode form_with
Ich möchte den Ablauf der Spring-Verarbeitungsanforderungsparameter verstehen
Ich möchte mit Kotlin und Java zum vorherigen Bildschirm zurückkehren!
Die Geschichte von Collectors.groupingBy, die ich für die Nachwelt behalten möchte
[Eclipse] Ich möchte dieselbe Datei zweimal öffnen. [Split-Editor]
Ich habe versucht zu verstehen, wie die Rails-Methode "redirect_to" definiert ist
Ich möchte die Eingabe begrenzen, indem ich den Zahlenbereich einschränke