SELECT NAME FROM ABCD WHERE NAME LIKE 「+航空+%」 AND ROWNUM < = 10SELECT NAME FROM ABCD WHERE NAME LIKE 「+航空+%」 AND ROWNUM <= 10
什麼是在該行的語法錯誤。 .....選擇名稱從ABCD這是工作
SELECT NAME FROM ABCD WHERE NAME LIKE 「+航空+%」 AND ROWNUM < = 10SELECT NAME FROM ABCD WHERE NAME LIKE 「+航空+%」 AND ROWNUM <= 10
什麼是在該行的語法錯誤。 .....選擇名稱從ABCD這是工作
雙引號圍繞文字?
文字和AND之間沒有空格嗎?
編輯:
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%'
。
無法正常工作。,。,。 pr = con.prepareStatement(「SELECT NAME FROM ABCD WHERE NAME LIKE'+ aero +%'AND ROWNUM <= 10」); – murali 2010-03-04 10:08:15
你需要單引號:
SELECT NAME FROM ABCD WHERE NAME LIKE '+aero+%' AND ROWNUM <= 10
而且之前也一個空格和。
UPDATE
目前尚不清楚,在你的問題正是你要搜索的內容。您可能需要以下其中一種代替:
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
...或其他一些變化。但重要的是,你應該用單引號將文字用雙引號括起來。
謝謝...第二次工作 – murali 2010-03-04 10:34:30
您需要賦予表達式和AND運算符之間的字符。並給予單引號 正則表達式
如果你們稱是從一些程序代碼,下面是更容易,其中aero
是可變的,並且%將作爲通配符。當Aero是ab
,它將搜索'ab','abc', 'abcd', .......
"SELECT NAME FROM ABCD WHERE NAME LIKE '"+aero+"%' AND ROWNUM <= 10;"
這是我不太清楚你的航空是否是一個字符串「航空」或程序中的一個變量的名稱。如果它是一個文字然後這樣做:
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);
你的文字「+」字符 – Pavunkumar 2010-03-04 10:00:52
,而不是'「+航空+%」檢查'更改爲'「+航空+%」'。 SQL中的字符串是單引號,而不是雙引號。 – 2010-03-04 10:02:10
事實上,雙引號允許你指定列名,例如。 '創建表格測試(「我的列名」NUMBER);' – 2010-03-04 10:10:05