Mysql question about UPDATE -


<पूर्व> UPDATE counter_reports SET `counter` =` counter` + 1, `date` =? कहां में ((counter_reports से report_id चयन report_id कहां REPORT_NAME = "emails_sent" और `द्वारा report_id DESC सीमा 1 year` = 1 आदेश), (counter_reports कहां REPORT_NAME =" emails_sent "और report_id DESC द्वारा` month` = 1 आदेश से report_id का चयन करें सीमा 1), (counter_reports से report_id का चयन करें जहां REPORT_NAME = "emails_sent" और `द्वारा report_id DESC सीमा 1 week` = 1 आदेश), (counter_reports कहां REPORT_NAME =" emails_sent "और report_id DESC द्वारा` day` = 1 आदेश से report_id का चयन करें LIMIT 1))

क्या इस तरह के SQL के लिए कोई विकल्प है? मुझे दिन, सप्ताह, महीने और वर्ष के लिए पिछली काउंटर रिपोर्ट अपडेट करने की आवश्यकता है।

अगर मैं मैन्युअल रूप से जोड़ रहा हूं, तो SQL ठीक काम करता है, लेकिन subqueries के साथ यह लॉन्च करने में विफल रहता है।

धन्यवाद :)

MySQL थोड़े लंगड़ा है, ऐसा करते हैं, कि काम करेंगे:

  UPDATE counter_reports SET `काउंटर` =` काउंटर` + 1, `तारीख` =? कहां में report_id (((से counter_reports से report_id चयन report_id का चयन करें जहां REPORT_NAME = "emails_sent" और `द्वारा report_id DESC सीमा 1 year` = 1 आदेश) एक्स के रूप में), ((से counter_reports से कहां REPORT_NAME =" emails_sent report_id चयन report_id चयन "और` द्वारा report_id DESC सीमा 1) एक्स के रूप में month` = 1 आदेश), (से report_id (counter_reports से report_id का चयन करें का चयन करें जहां REPORT_NAME = "emails_sent" और `द्वारा report_id DESC सीमा 1) एक्स के रूप में week` = 1 आदेश), ((से counter_reports से report_id चयन report_id का चयन करें जहां REPORT_NAME = "emails_sent" और `day` = 1 द्वारा report_id DESC सीमा 1 आदेश) एक्स के रूप में))  

इसके अलावा पिछले पूर्व पर एक नज़र पर्याप्त यहाँ (MySQL कोड, आपकी समस्या से संबंधित):


Comments