SQL Like Abfrage in doppelten Prozentzeichen: Unterschied zwischen den Versionen
Aus Contao Community Documentation
(Die Seite wurde neu angelegt: „Eine Like Abfrage in doppelten Prozentzeichen eingeschlossen ist ein bischen trickreich zu lösen. Will man dieses SQL Statement umsetzen: <pre> SELECT * FROM tl_…“) |
(Ergänzung) |
||
(3 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
− | Eine Like Abfrage in doppelten Prozentzeichen eingeschlossen ist ein | + | [[Category:Dev HOWTOS]] |
− | < | + | [[Category:Dev Snippets]] |
+ | {{AppliesTo|TLVersion=ab 2.6|Version=ab 2.9}} | ||
+ | Eine Like Abfrage in doppelten Prozentzeichen eingeschlossen ist ein bisschen trickreich zu lösen. Will man dieses SQL Statement umsetzen: | ||
+ | |||
+ | <source lang="sql"> | ||
SELECT * FROM tl_xyz WHERE title LIKE %Suchbegriff%; | SELECT * FROM tl_xyz WHERE title LIKE %Suchbegriff%; | ||
− | </ | + | </source> |
+ | |||
muss man wegen der automatischen Apostrophierung die Prozentzeichen mit in den Parameter verlagern: | muss man wegen der automatischen Apostrophierung die Prozentzeichen mit in den Parameter verlagern: | ||
− | < | + | |
+ | <source lang="php"> | ||
$this->Database->prepare("SELECT * FROM tl_xyz WHERE title LIKE ?") | $this->Database->prepare("SELECT * FROM tl_xyz WHERE title LIKE ?") | ||
->execute('%Suchbegriff%'); | ->execute('%Suchbegriff%'); | ||
− | </ | + | </source> |
+ | |||
bzw. mit Inhalt des Suchbegriffes in der Variable <nowiki>$varKeyword</nowiki>: | bzw. mit Inhalt des Suchbegriffes in der Variable <nowiki>$varKeyword</nowiki>: | ||
− | < | + | |
+ | <source lang="php"> | ||
$this->Database->prepare("SELECT * FROM tl_xyz WHERE title LIKE ?") | $this->Database->prepare("SELECT * FROM tl_xyz WHERE title LIKE ?") | ||
->execute('%'.$varKeyword.'%'); | ->execute('%'.$varKeyword.'%'); | ||
− | </ | + | </source> |
Natürlich kann man hier auch das eine oder andere Prozentzeichen weglassen, wenn man in den Daten am Anfang oder Ende eines Datenfeldes suchen möchte. | Natürlich kann man hier auch das eine oder andere Prozentzeichen weglassen, wenn man in den Daten am Anfang oder Ende eines Datenfeldes suchen möchte. | ||
Zeile 19: | Zeile 27: | ||
---- | ---- | ||
--[[Benutzer:BugBuster|BugBuster]] 13:16, 9. Jul. 2010 (CEST) | --[[Benutzer:BugBuster|BugBuster]] 13:16, 9. Jul. 2010 (CEST) | ||
+ | http://de.contaowiki.org/SQL_Like_Abfrage_in_doppelten_Prozentzeichen | ||
+ | |||
+ | ---- | ||
+ | Im Auflistungsmodul im Feld '''Bedingung''' kann man Prozentzeichen mit doppelten Prozentzeichen maskieren. | ||
+ | <source lang="sql"> | ||
+ | ... LIKE '%%foo%%' ... | ||
+ | </source> | ||
+ | --[[Benutzer:Andreas|Andreas Burg]] ([[Benutzer Diskussion:Andreas|Diskussion]]) 10:09, 16. Mär. 2017 (CET) |
Aktuelle Version vom 16. März 2017, 10:09 Uhr
betrifft | |
---|---|
TYPOlight Version | ab 2.6 |
Contao Version | ab 2.9 |
Eine Like Abfrage in doppelten Prozentzeichen eingeschlossen ist ein bisschen trickreich zu lösen. Will man dieses SQL Statement umsetzen:
SELECT * FROM tl_xyz WHERE title LIKE %Suchbegriff%;
muss man wegen der automatischen Apostrophierung die Prozentzeichen mit in den Parameter verlagern:
$this->Database->prepare("SELECT * FROM tl_xyz WHERE title LIKE ?") ->execute('%Suchbegriff%');
bzw. mit Inhalt des Suchbegriffes in der Variable $varKeyword:
$this->Database->prepare("SELECT * FROM tl_xyz WHERE title LIKE ?") ->execute('%'.$varKeyword.'%');
Natürlich kann man hier auch das eine oder andere Prozentzeichen weglassen, wenn man in den Daten am Anfang oder Ende eines Datenfeldes suchen möchte.
--BugBuster 13:16, 9. Jul. 2010 (CEST) http://de.contaowiki.org/SQL_Like_Abfrage_in_doppelten_Prozentzeichen
Im Auflistungsmodul im Feld Bedingung kann man Prozentzeichen mit doppelten Prozentzeichen maskieren.
... LIKE '%%foo%%' ...
--Andreas Burg (Diskussion) 10:09, 16. Mär. 2017 (CET)