2013-01-02 58 views
0

開始我有這個疑問SQL限制從

SELECT * FROM Posts WHERE Topics = '2hnsk6i2iqgoh0c6kdbyd' ORDER BY Number DESC limit 0,25 

哪會會的結果如下

2hnsk6i2iqgoh0c6kdbyd admin coecxrj0vqkow46h6243v 17:28 2013/01/02 1357147682 
2hnsk6i2iqgoh0c6kdbyd admin uvde2od4fffjyri2se3v6 17:28 2013/01/02 1357147682 
2hnsk6i2iqgoh0c6kdbyd admin 7nvk4tamdcmmqxc8xxzns 17:28 2013/01/02 1357147682 
2hnsk6i2iqgoh0c6kdbyd admin 46ibv785bpbcqin5csgqt 17:28 2013/01/02 1357147681 
2hnsk6i2iqgoh0c6kdbyd admin nprsukm2v7adx62psizcn 17:28 2013/01/02 1357147681 
2hnsk6i2iqgoh0c6kdbyd admin 5jffjmcrywv28ypxf88m8 17:28 2013/01/02 1357147681 
2hnsk6i2iqgoh0c6kdbyd admin i5ejx2hqf7m6m4ybc0b43 17:28 2013/01/02 1357147680 
2hnsk6i2iqgoh0c6kdbyd admin m72qzizi0ru4z6e2vz6vq 17:28 2013/01/02 1357147680 
2hnsk6i2iqgoh0c6kdbyd admin 3mf83zzvow6wt2gfhb6ub 17:28 2013/01/02 1357147680 
2hnsk6i2iqgoh0c6kdbyd admin ct2j2u8xx8ny8x3u27sjc 17:27 2013/01/02 1357147679 
2hnsk6i2iqgoh0c6kdbyd admin sdbx6iyburbeg0ie0magt 17:27 2013/01/02 1357147679 
2hnsk6i2iqgoh0c6kdbyd admin 5hir63ok3kq06g3upqbhk 17:27 2013/01/02 1357147679 
2hnsk6i2iqgoh0c6kdbyd admin 4pvuwgqazd84yck7adoxa 17:27 2013/01/02 1357147678 
2hnsk6i2iqgoh0c6kdbyd admin oiv6quuyrpwe8bgirjr4i 17:27 2013/01/02 1357147678 
2hnsk6i2iqgoh0c6kdbyd admin xcutah6426zesq323gfwx 17:27 2013/01/02 1357147678 
2hnsk6i2iqgoh0c6kdbyd admin hgfqab040h4k55bjedpkt 17:27 2013/01/02 1357147678 
2hnsk6i2iqgoh0c6kdbyd admin oonp5r3np5knm5d4ohm55 17:27 2013/01/02 1357147677 
2hnsk6i2iqgoh0c6kdbyd admin cbckqm8qi2oaimir2epzi 17:27 2013/01/02 1357147677 
2hnsk6i2iqgoh0c6kdbyd admin vtsaqex6wfdmh8ioceuvn 17:27 2013/01/02 1357147677 
2hnsk6i2iqgoh0c6kdbyd admin 0ubs8ur2wo55ohfuipdo0 17:27 2013/01/02 1357147677 
2hnsk6i2iqgoh0c6kdbyd admin 8tvorn65epoaict0fp26z 17:27 2013/01/02 1357147676 
2hnsk6i2iqgoh0c6kdbyd admin soctqr26i7aycza2u73pi 17:27 2013/01/02 1357147676 
2hnsk6i2iqgoh0c6kdbyd admin 8ukjwmao2qtt374g6p7ej 17:27 2013/01/02 1357147676 
2hnsk6i2iqgoh0c6kdbyd admin 4wyinun2ki45h6ww73qg6 17:27 2013/01/02 1357147675 
2hnsk6i2iqgoh0c6kdbyd admin 3dpsbg2t7s7fj2hbiyenk 17:27 2013/01/02 1357147675 

一個主題帶來了論壇上的帖子,但表示用戶正在通過郵寄的歷史,並希望使用它去主題,我想要一些代碼,如

SELECT * 
FROM Posts 
WHERE Topics = '2hnsk6i2iqgoh0c6kdbyd' 
ORDER BY Number DESC limit (SELECT * FROM POSTS WHERE POST = 'soctqr26i7aycza2u73pi'),25. 

這當然不起作用,但我不'不知道你是否可以,如果是這樣,我怎麼能得到這段代碼工作

由於有一些混淆,我會盡量簡化它。

我想運行query Topics ='$ topic',然後在那裏拉Post ='$ post',這將返回一個值,我想要在限制中使用的行號作爲起點爲返回數據,或基本類似的代碼做同樣的工作

MySQL版本5.5.29日誌

+3

*** SQL ***只是*結構化查詢語言* - 許多數據庫系統使用的語言,但不是數據庫產品......很多東西都是特定於供應商的 - 所以我們真的需要知道你正在使用的數據庫系統**(以及哪個版本)...... –

+0

我不太明白這個問題。另外,不要使用'SELECT *',因爲這是不好的做法;總是指定一個列列表。 – Kermit

+0

@marc_s我認爲OP使用MySQL,因爲LIMIT特定於此,AFAIK – RonaldBarzell

回答

0

least你在找什麼?即25中的較小者和該帖子的答覆數量?

SELECT * 
FROM Posts 
WHERE User = 'admin' 
ORDER BY Number DESC limit least((SELECT count(*) FROM POSTS WHERE POST = 'soctqr26i7aycza2u73pi'),25); 

編輯:問什麼OP的野生誤解。聽起來像是希望通過郵政專欄獲取郵政編號,並獲得接下來的25個職位。

所以我覺得OP實際上想要是

select * 
from posts 
where user = 'admin' 
order by number desc offset (select count(*) from posts where number > (select number from posts where post = 'soctqr26i7aycza2u73pi')) 
limit 25; 

注意,我number >而不是<因爲OP的desc訂購。


重新編輯:原來你不能做子查詢中限制或抵消語句(http://stackoverflow.com/questions/8181727/how-to-use-subquery-to-define-mysql - 選擇限制偏移)沒有一些哈克魔法。

在討論中,OP提到他正在爲此使用PHP。 我建議是的select count(*) from posts where number > (select number from posts where post = 'soctqr26i7aycza2u73pi'結果存儲作爲一個單獨的變量,並把它插入到偏移後,或通過最外查詢的結果只是循環從有到25

+0

在子查詢中不應該有COUNT(*)來獲得答覆的數量? – Barmar

+0

好點。編輯。 – Colleen

+0

我剛剛試過這個聲明是PHPMyAdmin,並得到了「#1327 - 未聲明的變量:至少」 –

0
SELECT * FROM Posts 
WHERE User = 'admin' 
AND Number >= (SELECT Number FROM POSTS WHERE POST = 'soctqr26i7aycza2u73pi') 
ORDER BY Number 
LIMIT 25 

這是問題的解決方案,謝謝那些試圖幫助的人