Inhaltsverzeichnis
Antwortinhalt:
Heim Backend-Entwicklung PHP-Tutorial Hilfe: Wie findet MySQL Ergebnisse basierend auf der angegebenen ID-Reihenfolge?

Hilfe: Wie findet MySQL Ergebnisse basierend auf der angegebenen ID-Reihenfolge?

Oct 10, 2016 am 11:56 AM
java mysql php

Liebe Meister, jetzt bin ich auf ein Problem gestoßen und brauche eure Hilfe.

Es gibt die folgenden zwei Tabellen
Beitragstabelle: Artikeltabelle.
Aufzeichnungstabelle: Aufzeichnungstabelle, die zum Aufzeichnen der Lesereihenfolge des Benutzers verwendet wird.

Die Datensatztabelle verwendet ein Feld postid, um die Primärschlüssel-ID der Beitragstabelle entsprechend der Reihenfolge aufzuzeichnen, in der der Benutzer Artikel liest, dh der Fremdschlüssel von record.postid ist post.id.

Jetzt müssen wir die Artikel in der Post-Tabelle basierend auf der Post-ID in der Datensatztabelle finden. (Angenommen, die Lesereihenfolge lautet: „Artikel 1, Artikel 2, Artikel 2, Artikel 3, Artikel 3“ erlaubt wiederholte Artikel.)
Ich habe mit

begonnen
<code>SELECT *
FROM post
WHERE id IN (postid1,postid2,postid2,postid3,postid3);</code>
Nach dem Login kopieren
Nach dem Login kopieren

In den Suchergebnissen können nur Artikel mit postid1, postid2, postid3 gefunden werden.

Die Geschäftslogik, die wir jetzt wollen, ist:
1: Artikel in der Beitragstabelle basierend auf den Lesedatensätzen des Benutzers finden.
2: Vervielfältigung ist erlaubt.

Zum Beispiel lautet die Lesereihenfolge der vom Benutzer gelesenen Artikel: „Artikel 1, Artikel 2, Artikel 2, Artikel 3, Artikel 3“, und das Ergebnis der Suche in der Beitragstabelle lautet: post.id1, ​​​​post.id2, post.id2, post.id2,post.id3.

Hinweis: Erwägen Sie die Verwendung einer FOR-Schleife

<code> for (.....){
      ...
      变量 数组x;
      数组x添加 SELECT * FROM post WHERE id = postidx;
      ....
 }</code>
Nach dem Login kopieren
Nach dem Login kopieren

Aber ich mache mir Sorgen um die Effizienz.

Antwortinhalt:

Liebe Meister, jetzt bin ich auf ein Problem gestoßen und brauche eure Hilfe.

Es gibt die folgenden zwei Tabellen
Beitragstabelle: Artikeltabelle.
Aufzeichnungstabelle: Aufzeichnungstabelle, die zum Aufzeichnen der Lesereihenfolge des Benutzers verwendet wird.

Die Datensatztabelle verwendet ein Feld postid, um die Primärschlüssel-ID der Beitragstabelle entsprechend der Reihenfolge aufzuzeichnen, in der der Benutzer Artikel liest, dh der Fremdschlüssel von record.postid ist post.id.

Jetzt müssen wir die Artikel in der Post-Tabelle basierend auf der Post-ID in der Datensatztabelle finden. (Angenommen, die Lesereihenfolge lautet: „Artikel 1, Artikel 2, Artikel 2, Artikel 3, Artikel 3“ erlaubt wiederholte Artikel.)
Ich habe mit

begonnen
<code>SELECT *
FROM post
WHERE id IN (postid1,postid2,postid2,postid3,postid3);</code>
Nach dem Login kopieren
Nach dem Login kopieren

In den Suchergebnissen können nur Artikel mit postid1, postid2, postid3 gefunden werden.

Die Geschäftslogik, die wir jetzt wollen, ist:
1: Artikel in der Beitragstabelle basierend auf den Lesedatensätzen des Benutzers finden.
2: Vervielfältigung ist erlaubt.

Zum Beispiel lautet die Lesereihenfolge der vom Benutzer gelesenen Artikel: „Artikel 1, Artikel 2, Artikel 2, Artikel 3, Artikel 3“, und das Ergebnis der Suche in der Beitragstabelle lautet: post.id1, ​​​​post.id2, post.id2, post.id2,post.id3.

Hinweis: Erwägen Sie die Verwendung einer FOR-Schleife

<code> for (.....){
      ...
      变量 数组x;
      数组x添加 SELECT * FROM post WHERE id = postidx;
      ....
 }</code>
Nach dem Login kopieren
Nach dem Login kopieren

Aber ich mache mir Sorgen um die Effizienz.

SELECT P.*
FROM Post P
LEFT JOIN Record R ON R.PostID = P.ID
ORDER BY R.ID ASC

Die Datensatztabelle zeichnet die Lesereihenfolge auf, daher muss sie entsprechend der Reihenfolge der Datensatztabelle sortiert werden

kann eine Idee liefern: Verwenden Sie in, um Daten aus der Datenbank abzurufen, und verwenden Sie map, um eine entsprechende Beziehung zu map.put(postid, post) herzustellen. Nehmen Sie es dann in der Reihenfolge der IDs heraus und stellen Sie die erforderlichen Datentypen zusammen

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian

So beheben Sie den Fehler „mysql_native_password nicht geladen' unter MySQL 8.4 So beheben Sie den Fehler „mysql_native_password nicht geladen' unter MySQL 8.4 Dec 09, 2024 am 11:42 AM

So beheben Sie den Fehler „mysql_native_password nicht geladen' unter MySQL 8.4

So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein Dec 20, 2024 am 11:31 AM

So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein

Wie analysiert und verarbeitet man HTML/XML in PHP? Wie analysiert und verarbeitet man HTML/XML in PHP? Feb 07, 2025 am 11:57 AM

Wie analysiert und verarbeitet man HTML/XML in PHP?

Brechen oder aus Java 8 Stream foreach zurückkehren? Brechen oder aus Java 8 Stream foreach zurückkehren? Feb 07, 2025 pm 12:09 PM

Brechen oder aus Java 8 Stream foreach zurückkehren?

PHP -Programm zum Zählen von Vokalen in einer Zeichenfolge PHP -Programm zum Zählen von Vokalen in einer Zeichenfolge Feb 07, 2025 pm 12:12 PM

PHP -Programm zum Zählen von Vokalen in einer Zeichenfolge

Java leicht gemacht: Ein Leitfaden für Anfänger zur Programmierleistung Java leicht gemacht: Ein Leitfaden für Anfänger zur Programmierleistung Oct 11, 2024 pm 06:30 PM

Java leicht gemacht: Ein Leitfaden für Anfänger zur Programmierleistung

Gestalten Sie die Zukunft: Java-Programmierung für absolute Anfänger Gestalten Sie die Zukunft: Java-Programmierung für absolute Anfänger Oct 13, 2024 pm 01:32 PM

Gestalten Sie die Zukunft: Java-Programmierung für absolute Anfänger

See all articles