Używanie sqlite3, jeśli moje zapytanie jestSqlite wiązanie wewnątrz łańcucha dosłownym
SELECT * FROM table WHERE title LIKE '%x%'
To będzie pasować ciągi zawierające x
. Chcę, aby x
się Bindable parametr, jak:
SELECT * FROM table WHERE title LIKE '%x?%'
Jednak to nie działa, ponieważ postaci ''
string dosłowne. Czy istnieje jakiś sposób na ucieczkę z ?
w obrębie literału? Rozumiem, że mogę zbudować Bindable parametr, aby zawierał %
a następnie użyć
SELECT * FROM table WHERE title LIKE ?
ale ten przenosi odpowiedzialność do mojego kodu pod względem obsługi zastrzyki SQL zamiast interfejsu wiązania. Czy istnieje lepsze rozwiązanie?
To nie tylko sqlite; '||' jest w standardzie SQL; Postgres i Oracle podążają za tym. MySQL i MSSQL używają odpowiednio 'CONCAT()' i '+', oba są niestandardowe. – ephemient