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

अल्पविराम से अलग किए गए मानों के साथ एकल MySQL फ़ील्ड

आप इस समाधान का उपयोग कर सकते हैं:

SELECT b.filename
FROM posts a
INNER JOIN images b ON FIND_IN_SET(b.imageid, a.gallery) > 0
WHERE a.postid = 3

SQLFiddle

हालांकि, आपको वास्तव में अपने डिजाइन को सामान्य बनाना चाहिए और पोस्ट और छवियों के बीच एक क्रॉस-रेफरेंस टेबल का उपयोग करना चाहिए। यह एन:एम (कई-से-कई) संबंधों का प्रतिनिधित्व करने का सबसे अच्छा और सबसे कुशल तरीका होगा। यह न केवल पुनर्प्राप्ति के लिए अधिक कुशल है, बल्कि यह अपडेट करना को बहुत आसान बना देगा और हटाना छवि संघ।

भले ही आपने क्रॉस-रेफरेंस टेबल के साथ N:M संबंध को ठीक से दर्शाया हो, फिर भी आप imageid प्राप्त कर सकते हैं CSV प्रारूप में है:

मान लीजिए आपके पास एक posts_has_images . है प्राथमिक कुंजी फ़ील्ड वाली तालिका (postid , imageid ):

आप GROUP_CONCAT() . का उपयोग कर सकते हैं imageid . का CSV प्राप्त करने के लिए प्रत्येक postid . के लिए है :

SELECT postid, GROUP_CONCAT(imageid) AS gallery
FROM posts_has_images
GROUP BY postid


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL इंडेक्स बनाम InnoDB इंडेक्स - अंतर को समझना

  2. सी एपीआई का उपयोग करके MySQL क्वेरी के लिए टाइमआउट कैसे सेट करें?

  3. MySQL/PHP में प्रदर्शित होने वाले रिकॉर्ड को दोहराने से बचें

  4. mysql में यूटीसी में तारीख

  5. MySQL क्वेरी प्रदर्शन ट्यूनिंग