Übereinstimmung mehrerer Wörter in MySQL-Datensätzen mit LIKE oder REGEXP
Wenn Sie den LIKE-Operator verwenden, um nach Datensätzen zu suchen, die bestimmte Wörter enthalten, kann es zu Problemen kommen Schwierigkeiten bereitet es, wenn die Wörter an unterschiedlichen Positionen im Feld auftauchen. Um dieses Problem zu beheben, sollten Sie den REGEXP-Operator verwenden.
Angenommen, Sie haben eine Tabelle namens „Tabelle“ mit einem Feld namens „Name“, das den Wert „Stylus Photo 2100“ enthält. Bei Verwendung des LIKE-Operators gibt die folgende Abfrage:
SELECT `name` FROM `table` WHERE `name` LIKE '%Stylus 2100%'
keine Ergebnisse zurück. Dies liegt daran, dass der LIKE-Operator nach einer genauen Übereinstimmung mit der angegebenen Zeichenfolge sucht.
Um Datensätze zu finden, die die Wörter „Stylus“ und „2100“ in beliebiger Reihenfolge enthalten, können Sie den REGEXP-Operator verwenden, wie hier gezeigt Abfrage:
SELECT `name` FROM `table` WHERE `name` REGEXP 'Stylus.+2100'
Diese Abfrage verwendet einen regulären Ausdruck, um nach Datensätzen zu suchen, bei denen das Feld „Name“ das Wort „Stylus“ gefolgt von einer beliebigen Anzahl von Zeichen enthält (angezeigt durch). das „.“) und dann das Wort „2100“.
Alternativ können Sie den LIKE-Operator mehrmals verwenden, wie in dieser Abfrage gezeigt:
SELECT `name` FROM `table` WHERE `name` LIKE '%Stylus%' AND `name` LIKE '%2100%'
Diese Abfrage wird zurückgegeben Datensätze, bei denen das Feld „Name“ das Wort „Stylus“ und das Wort „2100“ enthält, unabhängig von ihrer Position.
Das obige ist der detaillierte Inhalt vonWie können mehrere Wörter in MySQL-Datensätzen mithilfe von LIKE oder REGEXP effizient abgeglichen werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!