Nehmen wir an, ich habe eine MySQL-Tabelle, people
. Jeder Datensatz umfasst eine Reihe von Eigenschaften, darunter favourite_colour
, country
und age_group
.
Ich möchte Datensätze aus dieser Tabelle anhand ihrer Ähnlichkeit mit einer Reihe spezifischer Parameter abrufen. Bei "Red", "United States" und "18-25" wären beispielsweise die besten Ergebnisse diejenigen, die mit allen drei übereinstimmen. Dies wären 100% Übereinstimmungen.
Ich möchte jedoch auch Datensätze abrufen, die mit einer beliebigen Kombination aus zwei Parametern (66% Übereinstimmung) oder einem beliebigen Parameter (33% Übereinstimmung) übereinstimmen. Außerdem wäre ich gerne in der Lage zusätzliche Vergleichspunkte zu definieren (z. B. underwear_type
, marital_status
, etc.).
Gibt es eine relativ effiziente Lösung für dieses Problem?
Ja, Sie können jeden Vergleich wie favourite_colour='Red'
& amp; c in einen Wert von 0 (false) oder 1 (true) umwandeln - mysql tut dies implizit, aber aus Gründen der Allgemeinheit möchten Sie vielleicht
CAST( (favourite_colour='Red') AS INTEGER)
& amp; c; dann haben Sie% all diese, also
gibt dir zuerst perfekte Übereinstimmungen, dann 2 von 3; leicht generalisierbar für noch mehr Kontrollen! -)
Tags und Links php mysql comparison combinations