[英]how to get specific row values from table using mysql query without where condition
[英]Get previous 10 row from specific WHERE condition
我目前正在开发一个需要 MySql 数据库的项目,并且很难构建我想要的查询。
我想从我的 mysql 查询的特定 WHERE 条件中获取前 10 行。
例如
我在哪里 date='December';
我想要过去 10 个月的结果。
二月,三月,四月,五月,六月,七月,八月,九月,十月,十一月这样。
另一个例子是。 如果我的数据库中存储了 17 个字符串。 在我的 where 子句中,我指定 WHERE strings='eyt' 限制为 3
Test
one
twi
thre
for
payb
six
seven
eyt
nayn
ten
eleven
twelve
tertin
fortin
fiftin
sixtin
结果必须是
payb
six
seven
预先感谢您的建议或答案
如果您使用 PDO,这是正确的语法:
$objStmt = $objDatabase->prepare('SELECT * FROM calendar ORDER BY id DESC LIMIT 10');
您可以将ASC
更改为DESC
以获得第一个或最后一个 10。
这是一个解决方案:
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
称为“相关名称”,因此我们可以将子查询的列视为表的列。 当您将子查询用作表时,它是必需的。
我随意选择了字母x
。 您可以使用任何您喜欢的名称作为相关名称,遵循用于任何标识符的相同规则。
您还可以选择为查询中的任何简单表定义相关名称(如上面的mytable t
),以便您可以使用方便的缩写名称来引用该表的列。 例如在t.id < x.id
有些人使用术语“表别名”,但技术术语是“相关名称”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.