So suchen Sie nach mehreren Werten in demselben Feld in SQL
beim Erstellen eines Suchalgorithmus, es ist oft notwendig, einen Zeichenfolge zu brechen in seine Komponententeile und suchen Sie jeden Teil einzeln. Dies ist besonders nützlich, wenn Sie sich mit Suchbegriffen befassen, die durch Spaces getrennt sind.
Um dies in SQL zu erreichen, kann man den gleichen Operator mit einer Platzkarte in Betracht ziehen, um alle Zeichen vor und nach jedem Suchbegriff zu entsprechen. Dieser Ansatz ist jedoch nicht sehr effizient, da er mehrere ähnliche Klauseln erfordert und zu Leistungsproblemen führen kann.
Stattdessen besteht eine effektivere Lösung darin, den Operator zu verwenden. Mit dem Operator können Sie nach Werten suchen, die den in einer Liste angegebenen Werten entsprechen. Beispielsweise sucht die folgende Abfrage nach Produkten, die entweder "Sony" oder "TV" in ihrem Namen enthalten:
SELECT name FROM Products WHERE name IN ('Sony', 'TV');
um nach mehreren Werten zu suchen, die durch Leerzeichen getrennt sind, einfach die Zeichenfolge in ein Array unterteilen und den Operator wie folgt verwenden:
$search = "Sony TV with FullHD support"; $search = explode(' ', $search); SELECT name FROM Products WHERE name IN ( $search[0], $search[1], ... );
Alternativ können Sie oder mit dem gleiche Operator wie unten gezeigt:
SELECT name FROM Products WHERE name LIKE '%$search[0]%' OR name LIKE '%$search[1]%' OR ...;
Es ist jedoch wichtig zu beachten, dass die Verwendung oder erfordert mindestens eine Bedingung, während alle Bedingungen wahr sind.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3