我在C++中使用SQLite来查询数据库。我想用LIKE
运营商在select语句如SQLite C++语句格式
SELECT * FROM table WHERE columnName LIKE '%abc%'
但我需要为abc的值绑定在上面的语句查询。通常,对于像SELECT * FROM table WHERE [email protected]
这样的正常语句,我们可以使用query.bind(@name, 'name');
但是对于LIKE
运算符,我无法使其工作。我不确定我是否应该将其作为'%@name%'
?这不起作用并引发绑定错误异常。
任何建议都会非常有帮助,因为否则,我需要浏览具有100行的整个搜索结果,并检查每行的大字符串数组中的值。我们的想法是将字符串数组元素作为LIKE
运算符的绑定值来搜索数据库并获取一行。
任何想法?
非常感谢,提前。
Esash
绑定只能通过参数值,而不是其他地方工作的声明。您将不得不使用字符串操作来构造LIKE子句,或者参阅https://stackoverflow.com/questions/4329953/c-sharp-sqlite-parameterized-select-using-like。 –
您是否尝试过'LIKE @ name'和'query.bind(“@ name”,“%”+ abc +“%”)'[需要修复我的语法]? –