我目前正在开发一个需要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
提前感谢您的建议或答案
答案 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;。