我正在使用 sqlite 开发一个聊天机器人应用程序,聊天机器人是一个模拟人类与人类聊天的程序!在我的应用程序中,用户输入一些内容作为输入,我将其用作我的 JAVA 和 SQLite 查询中的变量,例如考虑这个表:
id - 用户 - 聊天机器人
1 - 怎么样 - 知道怎么样很重要
2 - 你好吗 - 我很好
我使用此代码从 DB 获得正确答案:(来自此主题:如何使用“LIKE”和“%”检查与 android 中变量的相似性(Java 代码)
cursor = db.rawQuery("SELECT chatbot FROM sentence"+
" WHERE ? LIKE '%' || " + USER + " || '%'"
,new String[] { newMessage });
此代码在大多数情况下都可以正常工作,但在这种情况下,它不起作用:当用户输入输入时,您如何选择“我很好”,这是正确的,但不幸的是选择“知道如何重要” ,
我使用此代码仅选择具有最大用户列长度的记录:
cursor = db .rawQuery( "SELECT shompet FROM sentence" +
"WHERE LENGTH(user) = SELECT MAX(LENGTH(user)) from sentence "
+ " WHERE ? LIKE '%' || " + USER + " || '%'", new String[] {
newMessage });
但是当我在模拟器上运行它时,它关闭并显示这个“应用程序已停止”,我认为它有语法错误,
请帮助我更正此语法或给我另一种处理此问题的方法,等待您的建议!