diff --git a/src/Db/DbCursor.py b/src/Db/DbCursor.py index 274782ec..2c41c2c1 100644 --- a/src/Db/DbCursor.py +++ b/src/Db/DbCursor.py @@ -49,6 +49,8 @@ class DbCursor: else: if key.startswith("not__"): query_wheres.append(key.replace("not__", "") + " != ?") + elif key.endswith("__like"): + query_wheres.append(key.replace("__like", "") + " LIKE ?") elif key.endswith(">"): query_wheres.append(key.replace(">", "") + " > ?") elif key.endswith("<"): diff --git a/src/Test/TestDb.py b/src/Test/TestDb.py index dda2ca20..67f383a3 100644 --- a/src/Test/TestDb.py +++ b/src/Test/TestDb.py @@ -75,6 +75,11 @@ class TestDb: {"not__title": ["Test #%s" % i for i in range(50, 3000)]} ).fetchone()["num"] == 50 + assert db.execute( + "SELECT COUNT(*) AS num FROM test WHERE ?", + {"title__like": "%20%"} + ).fetchone()["num"] == 1 + # Test named parameter escaping assert db.execute( "SELECT COUNT(*) AS num FROM test WHERE test_id = :test_id AND title LIKE :titlelike",