我正在研究SQL,我一直试图看看这有什么问题,但似乎无法弄清楚。
SELECT *
FROM l_suppliers
WHERE suppliers_name = 'frank reed's vegetables';
我正在研究SQL,我一直试图看看这有什么问题,但似乎无法弄清楚。
SELECT *
FROM l_suppliers
WHERE suppliers_name = 'frank reed's vegetables';
你的报价'
中间有一个引号。尝试这个:
SELECT * FROM l_suppliers WHERE suppliers_name = 'frank reed''s vegetables';
您需要'
使用''
or转义字符串分隔符\'
SELECT * FROM l_suppliers
WHERE suppliers_name = 'frank reed''s vegetables';
否则,SQL 引擎会认为字符串在后面结束,reed
并且不知道如何处理查询的其余部分。
问题在于'
,您必须使用转义字符,例如\
or '
。
例如oracle、tsql(sybase、ms sql server):
SELECT * FROM l_suppliers WHERE suppliers_name = 'frank reed''s vegetables';
看起来您的语句中有一个不完整的字符串。
您必须转义'
with''
才能成功执行它。
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';
或者
SELECT
*
FROM l_suppliers
WHERE suppliers_name LIKE 'frank reed''s vegetables%';
或者
SELECT
*
FROM l_suppliers
WHERE suppliers_name LIKE '%frank reed''s vegetables%';
在 sql 中,它使用单引号来分隔字母数字字段,因此如果您的字符串中有单引号,则 sql 认为它到此结束。您必须对其进行转义或将其替换为 ''。