我正在尝试使用LIKE运算符进行查询
String camp= nomePesquisa.getValue();
String ql = "select from pessoal where nome_Pessoa like ""'%"+camp+"%'" "";
,它会出现以下错误
此行有多个标记 - 令牌上的语法错误"""",删除它 令牌
答案 0 :(得分:3)
导致所有问题的基本错误是:您没有使用参数化查询。这将a)保护您的代码免受SQL注入,并且b)使您的SQL更容易编写。
在我首选的编程语言C#中,它看起来像这样:
"select from pessoal where nome_Pessoa like @name"
其中@name
是您必须传递的参数的名称。
根据您的代码,您似乎正在使用Java。在这种情况下,This可能对您有所帮助。
答案 1 :(得分:1)
试试这个
String ql = "select * from pessoal where nome_Pessoa like '%"+camp+"%'+ ";
你已经投入了许多quetas,但是如果你因为某种原因需要它们在字符串中,你应该逃避它们\"
。
P.S。你忘了键入你想要选择的内容
Select * FROM table
或SELECT col1,col2 FROM TABLE
P.S.S。不要将参数放在查询中,因为这是Query Injection的简单方法。
答案 2 :(得分:1)
从该行中删除所有"
:
String ql = "select from pessoal where nome_Pessoa like '%"+camp+"%'+ ";
你不能在那里连接任何东西。
答案 3 :(得分:1)
请使用以下内容删除不必要的引号:
String ql = "select from pessoal where nome_Pessoa like '%"+camp+"%'+ ";
此外,您可以使用一些escape
个字符。
答案 4 :(得分:1)
您可以简单地将其写为
String ql = "select from pessoal where nome_Pessoa like '%" + camp + "%'";
答案 5 :(得分:0)
更改以下代码
String ql = "select from pessoal where nome_Pessoa like '%"+camp+"%'+ ";
你错过了加号运算符