SQL Like Abfrage in doppelten Prozentzeichen: Unterschied zwischen den Versionen
Aus Contao Community Documentation
K (Typo) |
K (Geshi-Anpassung) |
||
Zeile 3: | Zeile 3: | ||
{{AppliesTo|TLVersion=ab 2.6|Version=ab 2.9}} | {{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: | 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. |
Version vom 3. Oktober 2010, 17: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)