从特定的WHERE条件获取前10行

时间:2016-09-19 10:59:09

标签: php mysql database

我目前正在开发一个需要MySql数据库的项目,我很难构建我想要的查询。

我想从我的mysql查询中的特定WHERE条件中获取前10行。

例如

我的日期=' 12月';

我想要过去10个月的结果。

2月,3月,4月,5月,7月,7月,8月,9月,8月,新星。

另一个例子是。 如果我的数据库中存储了17个字符串。在我的where子句中,我指定WHERE字符串=' eyt'限制3

Test
one
twi
thre
for
payb
six
seven
eyt
nayn
ten
eleven
twelve
tertin
fortin
fiftin
sixtin

结果必须是

payb
six
seven

提前感谢您的建议或答案

2 个答案:

答案 0 :(得分:0)

如果您使用PDO,这是正确的语法:

$objStmt = $objDatabase->prepare('SELECT * FROM calendar ORDER BY id DESC LIMIT 10');

您可以将ASC更改为DESC,以获得第一个或最后一个。

答案 1 :(得分:0)

这是一个解决方案:

select t.*
from mytable t
inner join (select id from mytable where strings = 'eyt' order by id limit 1) x
  on t.id < x.id
order by t.id desc
limit 3

演示:http://sqlfiddle.com/#!9/7ffc4/2

它按降序输出行,但您可以使用它,或者将该查询放在子查询中并反转顺序。

重新评论:

上述查询中的

x称为&#34;相关名称&#34;所以我们可以引用子查询的列,就好像它们是表的列一样。当您使用子查询作为表时,它是必需的。

我随意选择了x字母。您可以使用任何您喜欢的相关名称,遵循与任何标识符相同的规则。

您还可以选择为查询中的任何简单表定义相关名称(如上面的mytable t),这样您就可以使用方便的缩写名称来引用该表的列。例如,在t.id < x.id

有些人使用术语&#34;表别名&#34;但技术术语是&#34;相关名称&#34;。