0

我正在研究SQL,我一直试图看看这有什么问题,但似乎无法弄清楚。

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

7 回答 7

6

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

SELECT * FROM l_suppliers WHERE suppliers_name = 'frank reed''s vegetables';
于 2012-09-26T21:27:00.280 回答
6

您需要'使用''or转义字符串分隔符\'

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

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

于 2012-09-26T21:27:08.327 回答
5

问题在于',您必须使用转义字符,例如\or '

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

SELECT * FROM l_suppliers WHERE suppliers_name = 'frank reed''s vegetables';
于 2012-09-26T21:27:53.460 回答
3

看起来您的语句中有一个不完整的字符串。

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

SELECT * FROM l_suppliers WHERE suppliers_name = 'frank reed''s vegetables';
于 2012-09-26T21:27:35.283 回答
3

您的供应商名称中有一个嵌入的单引号。这打破了声明。嵌入的单引号应该像这样加倍:

SELECT * FROM l_suppliers WHERE suppliers_name = 'frank reed''s vegetables';
于 2012-09-26T21:28:39.187 回答
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%';
于 2012-09-26T23:51:24.870 回答
0

在 sql 中,它使用单引号来分隔字母数字字段,因此如果您的字符串中有单引号,则 sql 认为它到此结束。您必须对其进行转义或将其替换为 ''。

于 2012-09-26T21:33:15.153 回答