0
format(sql, sizeof(sql), "SELECT * FROM `datab` WHERE License = %s", searchPlate);

使用这种格式进行查询将为我提供所有具有此结果的行,但我想要做的是采取 ex。具有此结果的第三或第五甚至第十行,而不是所有行。我怎样才能做到这一点?

4

1 回答 1

0

像这样的东西应该在 MySQL 中工作:

format(sql, sizeof(sql), "SELECT * FROM `datab` WHERE License = %s ORDER BY IDColumnNameGoesHere LIMIT %d, 1", searchPlate, MyDesiredRowInteger);

几点:

  • %d可能不对,请使用正确的整数符号。
  • 您肯定在使用特定的 RDBMS,您必须查看文档并找出答案。SQL 是一个标准,MySQL 和 SQL-Server 等是该标准的实现。您必须找出您正在使用的实现。
  • 像您所做的那样将变量粘贴到字符串中会使您非常容易受到SQL 注入的影响。您应该始终参数化您的查询。
  • LIMIT 特定于 MySQL,如果您使用不同的 RDBMS,您将不得不走另一条路。例如 SQL-Server,您可以使用 TOP,但由于它只有一个参数,您需要使用 min 或 max 来获取您想要的一条记录。
于 2012-10-23T13:17:03.740 回答