限制的查詢與不同的值我有一個這樣的表:如何在MariaDB的
Id Num Some text -------------------- 1 1 "" 2 1 "" 3 2 "" 4 2 "" 5 2 "" 6 2 "" 7 3 ""
我要的是一個查詢,選擇前十個不同NUMS,所以如果我想獲得兩個第一個數字我會得到前六行。我正在使用MariaDB。
限制的查詢與不同的值我有一個這樣的表:如何在MariaDB的
Id Num Some text -------------------- 1 1 "" 2 1 "" 3 2 "" 4 2 "" 5 2 "" 6 2 "" 7 3 ""
我要的是一個查詢,選擇前十個不同NUMS,所以如果我想獲得兩個第一個數字我會得到前六行。我正在使用MariaDB。
試試這個辦法:
select *
from Table1 as T1
join (
select distinct num
from Table1
order by num
limit 2) as T2
on T1.num = T2.num
;
您的查詢不會返回任何內容,我不知道爲什麼 –
正如您所看到的那樣,它可以在您提供的示例數據的小提琴中工作。當你說「它什麼都不返回」時,我假設你是指你的實際數據庫?然後,你有沒有包括在問題中的差異。 – Turophile
好吧,現在它工作,這是我的壞。非常感謝。 –
在MySQL中,您可以使用LIMIT。需要說明的是,限制是不直接支持在IN
子查詢,因此你必須使用一個子查詢中的子查詢:
的MySQL 5.6架構設置:
CREATE TABLE Table1
(`Id` int, `Num` int, `Some text` varchar(2))
;
INSERT INTO Table1
(`Id`, `Num`, `Some text`)
VALUES
(1, 1, '""'),
(2, 1, '""'),
(3, 2, '""'),
(4, 2, '""'),
(5, 2, '""'),
(6, 2, '""'),
(7, 3, '""')
;
查詢1:
select * from Table1
where Num in (select Num FROM(select distinct Num from Table1 order by Num limit 2)a)
| Id | Num | Some text |
|----|-----|-----------|
| 1 | 1 | "" |
| 2 | 1 | "" |
| 3 | 2 | "" |
| 4 | 2 | "" |
| 5 | 2 | "" |
| 6 | 2 | "" |
我不知道MariaDB的,但在MSSQL我不喜歡這樣:select * from mytable其中num(通過num從mytable order中選擇前10個不同的num) – BoltBait
我試過了這個查詢:select * from buses2 where數字在(從巴士2中選擇不同的數字order by numero limit 1, 10),我得到這個:#1235 - 這個版本的MariaDB還不支持'LIMIT&IN/ALL/ANY/SOME子查詢' –