Hi Volker, On 2007-02-02 14:09, Volker Helm wrote:
Da im Text häufiger ein "wert like '%suchbegriff%'" steht, müsste ich immer dieses Sonderzeichen eintragen, das ist mühsam und unleserlich :(
dazu noch ein Hinweis: Setze den Suchbegriff als Argument in cursor.execute ein. Dadurch werden Zeichen, die in SQL Sonderzeichen sind (vor allem ' , bei manchen SQL-Dialekten auch \), richtig maskiert. Also nicht suchtext = "Python's Prozentzeichen" cursor.execute( "SELECT text FROM table WHERE text LIKE '%%%s%%'" % suchtext) # selbst eingesetzt - unsicher sondern suchtext = "Python's Prozentzeichen" cursor.execute( "SELECT text FROM table WHERE text LIKE '%%(suchtext)s%'", {'suchtext': suchtext}) # vom DB-Adapter eingesetzt - besser Beachte, dass hier der execute-Methode zwei Argumente übergeben werden. Außerdem musst du die Prozentzeichen am Anfang und Ende des Strings nicht verdoppeln (wenn der Datenbankadapter sauber programmiert ist). Wie einzusetzende Zeichenketten zu formatieren sind und wie das zweite Argument von cursor.execute aussehen muss, hängt vom konkreten Datenbankadapter ab. Näheres in der DB-API 2.0, an die sich alle neueren Adapter halten sollten, http://www.python.org/dev/peps/pep-0249/ , und der Doku zum von dir verwendeten Datenbankadapter. Viele Grüße Stefan