从ABCD中选择名称,其名称类似于“+ aero +%”和ROWNUM< = 10
这一行中的语法错误是什么...... SELECT NAME FROM ABCD这是有用的
答案 0 :(得分:4)
您需要单个引号:
SELECT NAME FROM ABCD WHERE NAME LIKE '+aero+%' AND ROWNUM <= 10
在AND之前还有一个空格。
<强>更新强>
您的问题并不清楚您究竟在寻找什么。您可能需要以下其中一项:
SELECT NAME FROM ABCD WHERE NAME LIKE '"+aero+%"' AND ROWNUM <= 10
SELECT NAME FROM ABCD WHERE NAME LIKE '%"+aero+"%' AND ROWNUM <= 10
SELECT NAME FROM ABCD WHERE NAME LIKE '"%+aero+%"' AND ROWNUM <= 10
......或其他一些变化。但重要的是你应该用单引号而不是双引号来表达文字。
答案 1 :(得分:2)
修改强>
con.prepareStatement(
"SELECT name FROM abcd WHERE name LIKE '" + aero + "%' AND ROWNUM <= 10");
将找到以变量aero
开头的所有字符串。
要获取包含变量aero
的字符串的所有字符串,请使用
con.prepareStatement(
"SELECT name FROM abcd WHERE name LIKE '%" + aero + "%' AND ROWNUM <= 10");
您需要使用单引号而不是双引号:
SELECT name
FROM abcd
WHERE name LIKE '+aero+%'
AND ROWNUM <= 10;
如果双引号位于字符串中,则搜索使用'"+aero+%"'
。
如果您只想搜索包含aero
的字符串,请使用'%aero%'
。
答案 2 :(得分:1)
文字周围的双引号?
文字和AND之间没有空格?
答案 3 :(得分:0)
您需要在表达式和AND运算符之间给出字符。并给出单引号 你的正则表达式
答案 4 :(得分:0)
如果您从某些程序代码中调用它,则更有可能发生以下情况:aero
是变量,%将充当通配符。当aero为ab
时,它会搜索'ab','abc', 'abcd', .......
"SELECT NAME FROM ABCD WHERE NAME LIKE '"+aero+"%' AND ROWNUM <= 10;"
答案 5 :(得分:0)
我不清楚您的 aero 是文字字符串'aero'还是程序中变量的名称。如果它是文字,那么这样做:
pr = con.prepareStatement
("SELECT NAME FROM ABCD WHERE NAME LIKE 'aero%' AND ROWNUM <= 10");
如果它是变量,那么你应该使用绑定变量。语法不仅更容易混淆,还可以防止SQL注入攻击。我不是ASP专家,但语法类似于:
pr = con.prepareStatement
("SELECT NAME FROM ABCD WHERE NAME LIKE ?||'%' AND ROWNUM <= 10");
con.setString(1,aero);