मुझे एक तालिका से एक मूल्य का चयन करने की जरूरत है, इसे एक सूची में परिवर्तित करें, फिर उस सूची के माध्यम से खोजें यदि यह किसी अन्य सूची में है, तो केवल एक को मिलान करना होगा।
मेरे पास एक सारणी है जो निम्न की तरह दिखती है:
_id name group
1 Bob mathematics,science,information technology...(list can be any size)
2 John science,mathematics,natural science,life orientation...(list can be any size)
और मेरे पास निम्न सरणी है:
arr = [science,mathematics]
मुझे समूह कॉलम को अल्पविराम सीमांकक के माध्यम से विभाजित करने की आवश्यकता है।
["mathematics","science","information technology"]
फिर इस सूची की तुलना मेरी arr
सरणी से करें। और यदि उनमें से 1 मेल खाता है, तो सभी फ़ील्ड लौटा दें।
मैंने substr
और instr
की कोशिश की है लेकिन यह काम नहीं कर सका।
SELECT substr(groups, 1, pos-1) AS g FROM (SELECT groups, instr(groups, ',') AS pos FROM courses WHERE _id = 2);
लेकिन यह केवल पहला लौटाता है। सुनिश्चित नहीं है कि यह sqlite3 में संभव है, बिना किसी अतिरिक्त पुस्तकालय के।
यही होने की जरूरत है:
SELECT * FROM subject WHERE ["mathematics","science","information technology"] in ("science","mathematics")
1 उत्तर
यहां विद RECURSIVE का उपयोग करने का तरीका दिया गया है। विचार किया जा रहा है: एक आभासी दृश्य बनाएं जो "समूह" कॉलम को टोकन करता है। यह प्रत्येक समूह तत्व को दृश्य की एक पंक्ति में रखकर, आपके substr/instr दृष्टिकोण पर आधारित है। यहाँ एक नमूना क्वेरी है:
WITH RECURSIVE glist(id, head, rest) AS ( select id, CASE when instr(groups,",") = 0 then groups else substr(groups,1,instr(groups,',')-1) END, -- head CASE when instr(groups,',') = 0 then groups else substr(groups,instr(groups,',') + 1) END --rest from subjects UNION ALL SELECT id, substr(rest,1,instr(rest,',') - 1), --head substr(rest,instr(rest,',')+1) -- rest FROM glist WHERE id = id and instr(rest,',') !=0 -- base case ) select distinct subjects.* from glist g JOIN subjects on subjects.id = g.id where head in ('science','mathematics') order by id
एनबी "देखने" के लिए कि glist
कैसा दिखता है, select distinct....
क्वेरी को select * from glist
से बदलें
संबंधित सवाल
नए सवाल
sqlite
SQLite एक सॉफ्टवेयर लाइब्रेरी है जो एक आत्म निहित, सर्वर रहित, शून्य-कॉन्फ़िगरेशन, ट्रांसेक्शनल SQL डेटाबेस इंजन को लागू करता है।