我正在开发一个迷你应用程序,我必须在表格中检索并保存USER_ID。
它的作用是这样的;我输入用户的电子邮件地址,然后语句必须检索USER_ID并将其保存到表中。
我的SQL Like声明有问题。它只是我必须只插入电子邮件地址的第一部分。例如,“thomas@yahoo.com”。我只插入“托马斯”;不是剩下的一部分。
以下是我在Java控制台中收到的语句和结果消息的示例:
代码:
String ea = txt_email.getText();
String lid = "SELECT USER_ID FROM user WHERE email_address Like '"+ea+"%' ";
错误消息:
错误:java.sql.SQLException:[Microsoft] [ODBC Microsoft Access驱动程序]查询表达式中的语法错误(缺少运算符)''SELECT USER_ID FROM user WHERE email_address Like'thomas%'''。
答案 0 :(得分:3)
尝试使用*
代替%
。 MS ACCESS对*
语句使用%
而不是LIKE
。
希望这有帮助
答案 1 :(得分:0)
PreparedStatement _query = con.prepareStatement(
"SELECT USER_ID FROM user WHERE email_address Like ?");
_query.setString(1, ea + "*"); // <== use *
_query.executeQuery();
其中con
是您的活动连接对象。
使用PreparedStatement
的一个好处是免受SQL Injection