这个简单的SQL语句出了什么问题?

时间:2012-09-26 21:25:37

标签: sql

我正在学习 SQL ,我一直试图看到这有什么问题,似乎无法弄明白。

SELECT * 
FROM l_suppliers
WHERE suppliers_name = 'frank reed's vegetables';

7 个答案:

答案 0 :(得分:6)

您的报价中间有一个引号'。试试这个:

SELECT * FROM l_suppliers WHERE suppliers_name = 'frank reed''s vegetables';

答案 1 :(得分:6)

您需要使用'''

转义字符串分隔符\'
SELECT * FROM l_suppliers 
WHERE suppliers_name = 'frank reed''s vegetables';

否则SQL引擎会认为字符串在reed之后结束,并且不知道如何处理查询的其余部分。

答案 2 :(得分:5)

问题在于',您必须使用\'之类的转义字符。

例如oracle,tsql(sybase,ms sql server):

SELECT * FROM l_suppliers WHERE suppliers_name = 'frank reed''s vegetables';

答案 3 :(得分:3)

看起来你在声明中有一个不完整的字符串。

您必须使用'转义''才能成功执行它。

SELECT * FROM l_suppliers WHERE suppliers_name = 'frank reed''s vegetables';

答案 4 :(得分:3)

您的供应商名称中包含嵌入式单引号。这破坏了声明。嵌入式单引号应该加倍:

SELECT * FROM l_suppliers WHERE suppliers_name = 'frank reed''s vegetables';

答案 5 :(得分:1)

你可以试试这可能会得到不同的结果

 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%';

答案 6 :(得分:0)

在sql中,它使用单引号来分隔alfanumeric字段,所以如果你的字符串中有一个单引号sql认为它在那里结束。您必须将其转义或用''。

替换它