选择第n行WHERE字段= x值

时间:2012-10-23 11:46:11

标签: mysql sql

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

使用这种格式查询会给我带有这个结果的所有行,但我想要做的就是拿ex。具有此结果的第三行,第五行或第十行,而不是所有行。我怎么能这样做?

1 个答案:

答案 0 :(得分: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 injection的攻击。您应该始终参数化您的查询。
  • LIMIT is specific to MySQL如果您使用的是其他RDBMS,则必须使用其他路径。例如,SQL-Server可以使用TOP,但由于这只有一个参数,除了只获得你想要的一条记录外,还需要使用min或max。