UPDATE zu sortieren: Ihre Frage aktualisiert Menschen Anfahrt und Daten aus dieser MYSQL Abfrage
Ich habe folgenden Tabellen besser
CREATE TABLE IF NOT EXISTS `post` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`heading` TEXT NOT NULL,
`content` LONGTEXT NOT NULL,
`date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
`thumb` TEXT NULL,
PRIMARY KEY (`id`))
ENGINE = InnoDB
AUTO_INCREMENT = 15
DEFAULT CHARACTER SET = latin1;
CREATE TABLE IF NOT EXISTS `tags` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`tagname` TEXT NOT NULL,
PRIMARY KEY (`id`))
ENGINE = InnoDB
AUTO_INCREMENT = 12
DEFAULT CHARACTER SET = latin1;
DROP TABLE IF EXISTS `tagsinpost` ;
CREATE TABLE IF NOT EXISTS `tagsinpost` (
`tid` INT(11) NULL DEFAULT NULL,
`pid` INT(11) NULL DEFAULT NULL,
CONSTRAINT `post_ibfk_1`
FOREIGN KEY (`pid`)
REFERENCES `post` (`id`)
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT `tagsinpost_ibfk_1`
FOREIGN KEY (`tid`)
REFERENCES `tags` (`id`)
ON DELETE CASCADE
ON UPDATE CASCADE)
ENGINE = InnoDB
DEFAULT CHARACTER SET = latin1;
CREATE INDEX `tagsinpost_ibfk_1` ON `tagsinpost` (`tid` ASC);
CREATE INDEX `post_ibfk_1` ON ``tagsinpost` (`pid` ASC);
Wo tid
und pid
sind ofcourse Fremdschlüssel undestand helfen id
TAG und POST id
Jetzt was ich will, ist verwandte Post basierend auf Tags von jedem Beitrag. Zum Beispiel, wenn einige POST1 enthält Tag T1, T2, T3, T4 und POST2 enthält Tag T2, T3, T4 und POST3 enthält T1, T2 und ich suche Posts auf POST1, dann meine Ausgabe sollte,
POST2 sein POST3
Beachten Sie die Reihenfolge, in der sie sich befinden, da die Anzahl der Tags in ihnen übereinstimmt. Zur Zeit bin ich daran fest, alle Posts mit gleichen Tags ohne Reihenfolge zu finden und meine Abfrage nimmt Tags als Eingabe, die POST-ID sein sollte.
Nun, wie ordne ich meine Ausgabe nach Anzahl der Übereinstimmungen T.Tagname in der zweiten Abfrage gefunden?
Bitte fügen Sie einige SQL hinzu, um Tabellen zu erstellen, fügen Sie einige Dummy-Daten, die Ausgabe, die Sie erwarten, und die Ausgabe, die Sie erhalten. –