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

जैंगो। पोस्टग्रेएसक्यूएल। regexp_split_to_table काम नहीं कर रहा

बैकस्लैश को Django द्वारा मेटा-कैरेक्टर के रूप में माना जाता है और दोहरे उद्धरण चिह्नों के अंदर व्याख्या की जाती है। तो E'\\s+') की एक परत पोस्टग्रेएसक्यूएल सर्वर पर स्ट्रिंग आने से पहले छीन लिया जाता है, जो E'\s+') को देखेगा . एस्केप स्ट्रिंग का परिणाम 's+' होगा जो बदले में regexp_split_to_table() . बना देगा अपने स्ट्रिंग्स को किसी भी संख्या में s . पर विभाजित करें गैर-मुद्रण स्थान के बजाय, जो वर्ण वर्ग शॉर्टहैंड \s रेगुलर एक्सप्रेशन के लिए खड़ा है।

आप जो चाहते हैं उसे पाने के लिए स्ट्रिंग में अपने बैकस्लैश को दोगुना करें:E'\\\\s+') :

"SELECT regexp_split_to_table(field_name, E'\\\\s+') FROM mytable LIMIT 20"

एक विकल्प के रूप में, बैकस्लैश के विशेष अर्थ के साथ समस्याओं से बचने के लिए \ , आप उपयोग कर सकते हैं [[:space:]] एक ही वर्ण वर्ग को दर्शाने के लिए:

"SELECT regexp_split_to_table(field_name, '[[:space:]]+') FROM mytable LIMIT 20"

अध्याय में विवरण " पैटर्न मिलान" मैनुअल में



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. बाएं जॉइन के साथ क्वेरी 0 की गिनती के लिए पंक्तियों को वापस नहीं कर रही है

  2. पोस्टग्रेज 8.4 . में प्रत्येक पंक्ति के लिए एक बार कॉल किए गए फ़ंक्शन के साथ अपडेट करें

  3. मेरा स्कीमा आकार क्यों नहीं देख सकता

  4. Postgresql डेटाबेस में चल रही क्वेरी की स्थिति कैसे प्राप्त करें

  5. उपयोगकर्ता/कनेक्शन के लिए कुछ संदर्भ चर कैसे सेट करें