我正在學習SQL我一直在試圖看看這有什麼問題,而且似乎無法弄清楚。這個簡單的SQL語句有什麼問題?
SELECT *
FROM l_suppliers
WHERE suppliers_name = 'frank reed's vegetables';
我正在學習SQL我一直在試圖看看這有什麼問題,而且似乎無法弄清楚。這個簡單的SQL語句有什麼問題?
SELECT *
FROM l_suppliers
WHERE suppliers_name = 'frank reed's vegetables';
你在報價中間有引號'
。試試這個:
SELECT * FROM l_suppliers WHERE suppliers_name = 'frank reed''s vegetables';
你需要逃避字符串分隔符'
與''
或\'
SELECT * FROM l_suppliers
WHERE suppliers_name = 'frank reed''s vegetables';
否則,SQL引擎會認爲字符串reed
結束後,不知道如何處理做查詢的其餘部分。
看起來你在語句中有一個不完整的字符串。
您必須使用''
轉義'
才能成功執行它。
SELECT * FROM l_suppliers WHERE suppliers_name = 'frank reed''s vegetables';
問題是與'
,你必須使用轉義字符像\
或'
。
例如甲骨文,TSQL(SYBASE,MS SQL服務器):
SELECT * FROM l_suppliers WHERE suppliers_name = 'frank reed''s vegetables';
您的供應商名稱嵌入單引號。這違反了聲明。嵌入式單引號應增加一倍,像這樣:
SELECT * FROM l_suppliers WHERE suppliers_name = 'frank reed''s vegetables';
在SQL它使用單引號用於界定alfanumeric領域,所以如果你有你的字符串內使用單引號SQL認爲這僅止於此。您必須將其轉義或用「'替換。
你可以試試這個,可能得到不同的結果
SELECT
*
FROM l_suppliers
WHERE suppliers_name = 'frank reed''s vegetables';
或
SELECT
*
FROM l_suppliers
WHERE suppliers_name LIKE 'frank reed''s vegetables%';
或
SELECT
*
FROM l_suppliers
WHERE suppliers_name LIKE '%frank reed''s vegetables%';
瑞秋:歡迎堆棧溢出!看起來您很快就收到了一些很好的答案,但對於將來的問題,您還應該發佈您收到的錯誤消息。這裏沒有必要讓一些人看到你的問題,但是當你學到更多東西並進入更復雜的領域時,它會更有幫助。 –