Mit sqlite3, wenn meine AbfrageSqlite Bindung innerhalb Stringliteral
SELECT * FROM table WHERE title LIKE '%x%'
Es Saiten entsprechen, die x
enthalten ist. Ich möchte x
einen bindungsfähigen Parameter machen, wie:
SELECT * FROM table WHERE title LIKE '%x?%'
Dies ist jedoch nicht, da die ''
Form wörtliche ein String funktioniert. Gibt es eine Möglichkeit, die ?
im Literal zu entkommen? Ich verstehe, dass ich die bindungsfähigen Parameter bauen konnte die %
und dann
SELECT * FROM table WHERE title LIKE ?
verwenden enthalten, aber diese bewegt die Verantwortung in meinen Code in Bezug auf SQL-Injections Umgang anstatt die bind-Schnittstelle. Gibt es dafür eine bessere Lösung?
Es ist nicht nur sqlite; '||' steht im SQL-Standard; Postgres und Oracle folgen diesem Beispiel. MySQL und MSSQL verwenden 'CONCAT()' und '+', beide sind nicht standardisiert. – ephemient