Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL:मुझे प्रत्येक उपयोगकर्ता प्रति दिन 1 से अधिकतम n पोस्ट दिखाने की आवश्यकता है

इस भयानक SQL कोड को आज़माएं :)

select post_id, user_id, post_datetime, post_text from (
  select posts.*,
    if (user_id = @prev_user and date(post_datetime) = date(@prev_day),
      @row := @row + 1, @row := 1) idx,
    @prev_user := user_id,
    @prev_day := post_datetime
  from posts, (select @row := 1, @prev_user := null, @prev_day := null) init
  order by date(post_datetime), user_id, post_datetime desc
) s
where s.idx <= 2

परिणाम:

+---------+---------+---------------------------------+----------------+
| POST_ID | USER_ID |          POST_DATETIME          |   POST_TEXT    |
+---------+---------+---------------------------------+----------------+
|       4 |     100 | December, 01 2012 04:00:00+0000 | lorem ipsum 4  |
|       2 |     100 | December, 01 2012 02:00:00+0000 | lorem ipsum 2  |
|       3 |     101 | December, 01 2012 03:00:00+0000 | lorem ipsum 3  |
|       5 |     102 | December, 01 2012 05:00:00+0000 | lorem ipsum 5  |
|       6 |     100 | December, 02 2012 03:00:00+0000 | lorem ipsum 6  |
|      10 |     101 | December, 02 2012 07:00:00+0000 | lorem ipsum 10 |
|       9 |     101 | December, 02 2012 06:00:00+0000 | lorem ipsum 9  |
|       7 |     102 | December, 02 2012 04:00:00+0000 | lorem ipsum 7  |
+---------+---------+---------------------------------+----------------+

फिडल यहां

मैंने सोचा था कि आदेश देना अधिक उपयुक्त होगा यदि यह तिथि के अनुसार अवरोही हो, क्योंकि आप वास्तव में शीर्ष 2 को वर्तमान तिथि के सबसे करीब प्राप्त कर रहे हैं।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL वर्कबेंच को Amazon RDS से कैसे कनेक्ट करें?

  2. पुनरावृति के बिना कर्सर में रिकॉर्ड की mysql संख्या?

  3. क्या MySQL में एक बूलियन फ़ील्ड को एक क्वेरी के साथ उलटने का कोई तरीका है?

  4. ini_set, set_time_limit, (max_execution_time) - काम नहीं कर रहा

  5. MySQL के साथ JDBC वास्तव में धीमा है, पता नहीं क्यों