0

このクエリがあります

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.

もちろんそれは機能しませんが、できるかどうかはわかりません。もしそうなら、どうすればそのコードを機能させることができるでしょうか

ややこしいので、簡単にまとめてみます。

クエリを実行したいデータを返すか、同じ仕事をするために本質的に類似したコードを返す

MySQL バージョン 5.5.29-ログ

4

2 に答える 2

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;

OPの順序number >のため、代わりに持っていることに注意してください。<desc


再編集: limit または offset ステートメントでサブセレクトを実行できないことが判明しました (http://stackoverflow.com/questions/8181727/how-to-use-subquery-to-define-mysql-select-limit-offset)ハックマジックなしで。

議論の中で、OPは、これにPHPを使用していると述べました。私の推奨は、結果を別の変数として保存し、select count(*) from posts where number > (select number from posts where post = 'soctqr26i7aycza2u73pi'後でオフセットにプラグインするか、そこから最も外側のクエリの結果を 25 までループすることでした。

于 2013-01-02T22:04:56.793 に答える
0
SELECT * FROM Posts 
WHERE User = 'admin' 
AND Number >= ( SELECT Number FROM POSTS WHERE POST = 'soctqr26i7aycza2u73pi')
ORDER BY Number
LIMIT 25

これは問題の解決策です。助けようとした人に感謝します

于 2013-01-03T01:15:49.433 に答える