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

Mysql में रिकॉर्ड्स के सन्निहित ब्लॉक का चयन करना

एक समूह में लगातार प्रविष्टियों को संक्षिप्त करने की एक सरल चाल है। यदि आप (row_number - entry) द्वारा समूहित करते हैं, तो जो प्रविष्टियाँ क्रमागत हैं वे उसी समूह में समाप्त हो जाएँगी। यहाँ एक उदाहरण दिया गया है जो दर्शाता है कि मेरा क्या मतलब है:

क्वेरी :

SELECT phonenum, @curRow := @curRow + 1 AS row_number, phonenum - @curRow
from phonenums p
join (SELECT @curRow := 0) r

परिणाम :

|    PHONENUM | ROW_NUMBER | PHONENUM - @CURROW |
-------------------------------------------------
| 27100070000 |          1 |        27100069999 |
| 27100070001 |          2 |        27100069999 |
| 27100070002 |          3 |        27100069999 |
| 27100070003 |          4 |        27100069999 |
| 27100070004 |          5 |        27100069999 |
| 27100070005 |          6 |        27100069999 |
| 27100070008 |          7 |        27100070001 |
| 27100070009 |          8 |        27100070001 |
| 27100070012 |          9 |        27100070003 |
| 27100070015 |         10 |        27100070005 |
| 27100070016 |         11 |        27100070005 |
| 27100070040 |         12 |        27100070028 |

ध्यान दें कि कैसे लगातार सभी प्रविष्टियाँ PHONENUM - @CURROW . के लिए समान मान रखती हैं . यदि हम उस कॉलम पर समूह बनाते हैं, और प्रत्येक समूह के न्यूनतम और अधिकतम का चयन करते हैं, तो आपके पास सारांश होता है (एक अपवाद के साथ:आप END मान को NULL से बदल सकते हैं। यदि START =END यदि यह एक आवश्यकता है):

क्वेरी :

select min(phonenum), max(phonenum) from
(
  SELECT phonenum, @curRow := @curRow + 1 AS row_number
  from phonenums p
  join (SELECT @curRow := 0) r
) p
group by phonenum - row_number

परिणाम :

| MIN(PHONENUM) | MAX(PHONENUM) |
---------------------------------
|   27100070000 |   27100070005 |
|   27100070008 |   27100070009 |
|   27100070012 |   27100070012 |
|   27100070015 |   27100070016 |
|   27100070040 |   27100070040 |

डेमो:http://www.sqlfiddle.com/#!2/59b04/5




  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 में कई तालिकाओं को अद्यतन करें

  2. 1093 MySQL तालिका में त्रुटि दो बार निर्दिष्ट है

  3. खोज क्वेरी में हाइफ़न के साथ पूर्ण पाठ खोज की अनुमति कैसे दें

  4. PHP में IN क्लॉज के साथ प्रश्नों में तैयार कथनों का उपयोग कैसे करें

  5. लंबी PHP स्क्रिप्ट चलाते समय मैं मेमोरी को कैसे साफ़ कर सकता हूँ? अनसेट करने की कोशिश की ()