无法获得 delphi SQL LIKE 与 % 一起工作
Can't get delphi SQL LIKE to work with %
我正在做一个学校项目,需要编写查询代码以根据特定变量过滤数据集。我的所有 SQL 工作正常,除了我无法让 LIKE 语句与 %-signs 一起工作。我相信我的语法是错误的。谁能告诉我我做错了什么。谢谢
代码:
qryMovie.SQL.Clear;
qryMovie.SQL.Add('SELECT * FROM Movies');
qryMovie.SQL.Add('WHERE Genre = ' + QuotedStr(genre));
qryMovie.SQL.Add('AND Price BETWEEN ' + minPrice + ' AND ' + maxPrice);
qryMovie.SQL.Add('AND Title LIKE %' + title + '%');
qryMovie.Open;
产生错误:
'查询表达式中的语法错误'流派 = 'Action/Adventure'
AND 价格在 0 和 200 之间
AND Title LIKE %Star Wars%''
LIKE %Star Wars%
但你需要
LIKE '%Star Wars%'
您需要用 '
引用 %
:
qryMovie.SQL.Add(' AND Title LIKE ''%' + title + '%''');
无论如何你应该使用绑定参数而不是连接 SQL 字符串。它很容易出错,并可能导致 SQL 注入攻击。
我正在做一个学校项目,需要编写查询代码以根据特定变量过滤数据集。我的所有 SQL 工作正常,除了我无法让 LIKE 语句与 %-signs 一起工作。我相信我的语法是错误的。谁能告诉我我做错了什么。谢谢
代码:
qryMovie.SQL.Clear;
qryMovie.SQL.Add('SELECT * FROM Movies');
qryMovie.SQL.Add('WHERE Genre = ' + QuotedStr(genre));
qryMovie.SQL.Add('AND Price BETWEEN ' + minPrice + ' AND ' + maxPrice);
qryMovie.SQL.Add('AND Title LIKE %' + title + '%');
qryMovie.Open;
产生错误:
'查询表达式中的语法错误'流派 = 'Action/Adventure' AND 价格在 0 和 200 之间 AND Title LIKE %Star Wars%''
LIKE %Star Wars%
但你需要
LIKE '%Star Wars%'
您需要用 '
引用 %
:
qryMovie.SQL.Add(' AND Title LIKE ''%' + title + '%''');
无论如何你应该使用绑定参数而不是连接 SQL 字符串。它很容易出错,并可能导致 SQL 注入攻击。