[英]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.