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 bischen trickreich zu lösen. Will man dieses SQL Statement umsetzen:
+
[[Category:Dev HOWTOS]]
<pre>
+
[[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%;
</pre>
+
</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:
<pre>
+
 
 +
<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%');
</pre>
+
</source>
 +
 
 
bzw. mit Inhalt des Suchbegriffes in der Variable <nowiki>$varKeyword</nowiki>:
 
bzw. mit Inhalt des Suchbegriffes in der Variable <nowiki>$varKeyword</nowiki>:
<pre>
+
 
 +
<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.'%');
</pre>
+
</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)

Ansichten
Meine Werkzeuge

Contao Community Documentation

<user> Composer meckert bei Isotope, dass er mit tablelookupwizard 3.1 nicht zurecht kommt - korrekt?
<Toflar> keine Ahnung, sowas weiss ich doch nicht auswendig :D
<user> wer dann ;)
<Toflar> na niemand, deswegen schreibt man's ja in die composer.json

Navigation
Verstehen
Verwenden
Entwickeln
Verschiedenes
Werkzeuge