like
子句不想获取靠近我的单词的所有结果,我必须写完整的句子来获取它,例如:
我在数据库中有以下数据:
Lion king
lionheart
level completed
good morning
我想要抓取Lion king
,当我写下这部分字lion
时,正常情况下它必须抓取Lion king
和lionheart
,但在我的情况下不会获取任何东西,除非,必须写完整的句子来获取数据。
我尝试使用以下查询:
SELECT * FROM table WHERE name LIKE '%text'
SELECT * FROM contacts WHERE name LIKE '%text' OR name LIKE 'text%' OR name LIKE '%text%' OR name LIKE text
注意:
我使用C++ Qt
框架,以下是我做的
qry.prepare("SELECT * FROM table WHERE name LIKE '%:text'");
qry.bindValue(":text", ui->searchBox_txt->text());
qry.exec();
如何让查询执行正常行为?
答案 0 :(得分:1)
:text
是一个名为text
':text'
是字符串":text"
同样,"%:text"
正是如此;你的参数没有被解析,因为它在一个字符串里面。
您需要使用连接运算符('%'
)将参数与||
连接起来:
SELECT * FROM table WHERE name LIKE '%' || :text || '%'
答案 1 :(得分:-1)
删除:
后的%
。像这样:
SELECT * FROM table WHERE name LIKE '%text%'
请注意,该值区分大小写