मेरे पास MySQL में एक डेटाबेस है। मैं .csv फ़ाइल या .xls फ़ाइल से डेटाबेस तालिका में डेटा का एक सेट अपलोड करता हूँ। पुनर्प्राप्ति के दौरान मुझे केवल उन मानों के सेट को पुनर्प्राप्त करने की आवश्यकता है जिन्हें मैंने हाल ही में डेटाबेस में तालिका में अपलोड किया है। मुझे तालिका में संग्रहीत सभी मान नहीं मिलना चाहिए। (केवल तालिका में हाल ही में अपलोड किए गए मान पुनर्प्राप्त किए जाने चाहिए)। लैरावेल का उपयोग करके मैं यह कैसे कर सकता हूं?

1
Muthu 17 अगस्त 2017, 10:59

4 जवाब

सबसे बढ़िया उत्तर

(1)

उस तालिका में जहां आप माइग्रेशन का उपयोग करके CSV और XML से डेटा संग्रहीत करते हैं, उन रिकॉर्ड्स को चिह्नित करने के लिए एक फ़्लैग बनाएं, जिन्हें आपने अभी तक संसाधित नहीं किया है, उदा. is_processed. इसे 0 का डिफ़ॉल्ट मान दें।

(2)

यदि आपके पास पहले से पुनर्प्राप्त (संसाधित) डेटा है, तो उन्हें 1 पर सेट करें, ताकि वे फिर से संसाधित न हों। आप इसे अपने मामले में समझ में आने वाली स्थितियों के आधार पर एक क्वेरी के साथ मैन्युअल रूप से कर सकते हैं।

(3)

फिर, आपके द्वारा नया डेटा संग्रहीत करने के बाद, वे स्वतः is_processed = 0 पर सेट हो जाएंगे। इसका मतलब है कि आप उन्हें बाद में इस तरह पहचान सकते हैं:

$unprocessedData = MyModel::where('is_processed', 0)->get();

यदि आपको आवश्यकता हो तो आप उन्हें ऑर्डर भी कर सकते हैं, लेकिन - सामान्य तौर पर - यही वह तरीका है जिसे मैं अपनाऊंगा।

1
lesssugar 17 अगस्त 2017, 11:17

मान लें कि आपके पास उपयोगकर्ता नामक एक टेबल/मॉडल है;

$getLatestUsers=Users::orderBy('created_at','desc')->take(5)->get();

यह डेटाबेस से 5 हालिया रिकॉर्ड लेगा।

1
Leo 17 अगस्त 2017, 11:06

वैसे यह उस पर निर्भर करता है जिसे आप "हाल ही में" मानते हैं लेकिन आप अपनी आवश्यकताओं के अनुरूप इस तरह के फ़ंक्शन को ट्वीक कर सकते हैं:

->where('created_at', '<', Carbon::now()->subMinutes(5)->toDateTimeString())

यह पिछले 5 मिनट में बनाए गए तत्वों को पुनः प्राप्त करेगा, लेकिन कार्बन सबट्रैक्टर्स

पीडी: अपने नेमस्पेस डिक्लेरेशन के तहत use Carbon\Carbon; जोड़ना याद रखें।

आशा है कि यह आपकी मदद करता है।

1
Asur 17 अगस्त 2017, 11:08
$latest= Users::orderBy('created_at','desc')->take(10)->get();

this will return 10 recent values
1
Kuldeep Mishra 17 अगस्त 2017, 11:09