SQL Like Abfrage in doppelten Prozentzeichen: Unterschied zwischen den Versionen
Aus Contao Community Documentation
K |
(Ergänzung) |
||
| (2 dazwischenliegende Versionen von einem Benutzer werden nicht angezeigt) | |||
| Zeile 2: | Zeile 2: | ||
[[Category:Dev Snippets]] | [[Category:Dev Snippets]] | ||
{{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 | + | 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 22: | 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)