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

प्रक्रिया में दो बार निर्दिष्ट तालिका, कैसे ठीक करें?

मुझे लगता है कि आप एक सहसंबद्ध उपश्रेणी चाहते हैं:

UPDATE ordersperformers op
    SET op.Status = 1    
WHERE op.Status = 0 AND
      op.Orders_Id = @v_order_id AND
      op.Users_Id = @v_user_id AND
      EXISTS (SELECT  1
              FROM orders o
              WHERE o.id = op.Orders_Id AND
                    NOW() <= DATE_SUB(o.DeliveryDate, INTERVAL 2 HOUR) AND
                    o.Status = 0 
             );

मैंने अन्य चीजों का एक गुच्छा बदला/ठीक किया:

  • तालिका उपनाम क्वेरी को लिखने और पढ़ने में आसान बनाते हैं।
  • बैकटिक्स क्वेरी को लिखने और पढ़ने में कठिन बनाते हैं।
  • केवल अद्यतन की जा रही तालिका की शर्तें बाहरी WHERE . में होनी चाहिए , आंतरिक नहीं WHERE
  • वेरिएबल को EXISTS में सेट करना सबक्वायरी बस समझ में नहीं आता है। EXISTS परीक्षण करता है कि क्या पंक्तियाँ मौजूद। तार्किक रूप से, यह कभी भी SELECT . का मूल्यांकन किए बिना निष्पादित हो सकता है ।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. क्या SQL के लिए कोई प्रकाशित कोडिंग शैली दिशानिर्देश हैं?

  2. 'X' किलोमीटर (या मील) के भीतर शहर ढूँढना

  3. कक्षाओं में पीडीओ का प्रयोग

  4. एक ऑनक्लिक जावास्क्रिप्ट फ़ंक्शन के माध्यम से PHP का उपयोग करके एक MySQL डेटाबेस को अपडेट करना

  5. किसी तालिका से एक MySQL डेटाबेस में एकाधिक पंक्तियाँ सम्मिलित करें