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

मारियाडीबी में इलिप्सिस के साथ टेक्स्ट को कैसे छोटा करें

कभी-कभी आप पाते हैं कि डेटाबेस कॉलम में लौटाए गए टेक्स्ट की मात्रा बहुत लंबी है। हो सकता है कि आप उस पाठ का एक छोटा स्निपेट, उसके बाद एक इलिप्सिस या तीन बिंदु वापस करना चाहें।

सौभाग्य से, यह मारियाडीबी में करना अपेक्षाकृत आसान है।

तीन अवधि

जब भी उस कॉलम में वर्णों की संख्या एक निश्चित लंबाई से अधिक हो जाती है, तो तीन अवधियों (एक दीर्घवृत्त वर्ण के बजाय) को जोड़ने का एक उदाहरण यहां दिया गया है:

SELECT 
    IF(CHAR_LENGTH(ProductDescription) > 32, 
        CONCAT(LEFT(ProductDescription, 32),"..."), 
        ProductDescription) AS "Short Desc",
    ProductDescription AS "Full Desc"
FROM Products;

परिणाम:

+-------------------------------------+-----------------------------------------+
| Short Desc                          | Full Desc                               |
+-------------------------------------+-----------------------------------------+
| Purple. Includes left handed car... | Purple. Includes left handed carry box. |
| Blue. Includes right handed carr... | Blue. Includes right handed carry box.  |
| Approximate 45 minute waiting pe... | Approximate 45 minute waiting period.   |
| Approximate 30 minute waiting pe... | Approximate 30 minute waiting period.   |
| Wooden handle. Free wine glasses... | Wooden handle. Free wine glasses.       |
| Orange. Includes spare fingers.     | Orange. Includes spare fingers.         |
| Tied with vines. Very chewable.     | Tied with vines. Very chewable.         |
| Brown ceramic with solid handle.    | Brown ceramic with solid handle.        |
+-------------------------------------+-----------------------------------------+

इस मामले में हम CHAR_LENGTH() . का उपयोग करते हैं एक IF() . के अंदर काम करता है यह निर्धारित करने के लिए कार्य करता है कि स्ट्रिंग को छोटा करने के लिए पर्याप्त लंबा है या नहीं। फिर हम LEFT() . का उपयोग करते हैं CONCAT() . के अंदर काम करता है संक्षिप्त विवरण में कुछ बिंदु जोड़ने का कार्य करता है।

वास्तविक एलिप्सिस वर्ण का उपयोग करना

और यहाँ यह फिर से है, लेकिन तीन बिंदुओं के बजाय एक वास्तविक दीर्घवृत्त वर्ण के साथ:

SELECT 
    IF(CHAR_LENGTH(ProductDescription) > 32, 
        CONCAT(LEFT(ProductDescription, 32),"…"), 
        ProductDescription) AS "Short Desc",
    ProductDescription AS "Full Desc"
FROM Products;

परिणाम:

+-------------------------------------+-----------------------------------------+
| Short Desc                          | Full Desc                               |
+-------------------------------------+-----------------------------------------+
| Purple. Includes left handed car…   | Purple. Includes left handed carry box. |
| Blue. Includes right handed carr…   | Blue. Includes right handed carry box.  |
| Approximate 45 minute waiting pe…   | Approximate 45 minute waiting period.   |
| Approximate 30 minute waiting pe…   | Approximate 30 minute waiting period.   |
| Wooden handle. Free wine glasses…   | Wooden handle. Free wine glasses.       |
| Orange. Includes spare fingers.     | Orange. Includes spare fingers.         |
| Tied with vines. Very chewable.     | Tied with vines. Very chewable.         |
| Brown ceramic with solid handle.    | Brown ceramic with solid handle.        |
+-------------------------------------+-----------------------------------------+

इलिप्सिस कम जगह का उपयोग करता है। ऐसा इसलिए है क्योंकि यह तीन बिंदुओं (जो तीन अलग-अलग वर्ण हैं) के विपरीत एक एकल वर्ण है।

लंबाई की परवाह किए बिना सभी पंक्तियों को काटें

यदि आपको सभी पंक्तियों को छोटा करना है, चाहे उनकी लंबाई कुछ भी हो, तो आपको IF() शामिल करने की आवश्यकता नहीं है समारोह।

इस मामले में, कोड को कुछ इस तरह छोटा किया जा सकता है:

SELECT 
    CONCAT(LEFT(ProductDescription, 15), '...') AS "Short Desc",
    ProductDescription AS "Full Desc"
FROM Products;

परिणाम:

+--------------------+-----------------------------------------+
| Short Desc         | Full Desc                               |
+--------------------+-----------------------------------------+
| Purple. Include... | Purple. Includes left handed carry box. |
| Blue. Includes ... | Blue. Includes right handed carry box.  |
| Approximate 45 ... | Approximate 45 minute waiting period.   |
| Approximate 30 ... | Approximate 30 minute waiting period.   |
| Wooden handle. ... | Wooden handle. Free wine glasses.       |
| Orange. Include... | Orange. Includes spare fingers.         |
| Tied with vines... | Tied with vines. Very chewable.         |
| Brown ceramic w... | Brown ceramic with solid handle.        |
+--------------------+-----------------------------------------+

एलिप्सिस को छोड़ दें

और अगर आपको इलिप्सिस/तीन अवधियों की भी आवश्यकता नहीं है, तो आप इसे और भी छोटा कर सकते हैं, कुछ इस तरह:

SELECT 
    LEFT(ProductDescription, 15) AS "Short Desc",
    ProductDescription AS "Full Desc"
FROM Products;

परिणाम:

+-----------------+-----------------------------------------+
| Short Desc      | Full Desc                               |
+-----------------+-----------------------------------------+
| Purple. Include | Purple. Includes left handed carry box. |
| Blue. Includes  | Blue. Includes right handed carry box.  |
| Approximate 45  | Approximate 45 minute waiting period.   |
| Approximate 30  | Approximate 30 minute waiting period.   |
| Wooden handle.  | Wooden handle. Free wine glasses.       |
| Orange. Include | Orange. Includes spare fingers.         |
| Tied with vines | Tied with vines. Very chewable.         |
| Brown ceramic w | Brown ceramic with solid handle.        |
+-----------------+-----------------------------------------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मारियाडीबी में एक टेबल से रैंडम पंक्तियों को वापस करें

  2. मारियाडीबी में DATE_ADD () कैसे काम करता है

  3. प्रॉक्सीएसक्यूएल और एडब्ल्यूएस ऑरोरा के साथ डेटाबेस लोड संतुलन

  4. अपने MySQL या MariaDB डेटाबेस को AWS और Google क्लाउड पर अत्यधिक उपलब्ध कैसे करें

  5. मारियाडीबी ROWNUM () समझाया गया