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

बहुआयामी सरणी क्वेरी mysql

इसके मूल में, यह एक डेटाबेस समस्या की तरह लगता है।

प्रतिशत कॉलम को NULL के रूप में सेट करें और 0 को डिफ़ॉल्ट के रूप में सेट करें।

ALTER TABLE promotions CHANGE COLUMN percent [maintain-its-type] NOT NULL DEFAULT '0';

फिर यह (यदि मैं समस्या को समझता हूं) प्रत्येक तिथि के लिए MAX () और MIN () प्रतिशत मान लेने की बात है।

SELECT s.date, s.rate, MAX(p.percent) AS maxperc, MIN(p.percent) AS minperc
    FROM stock s
    LEFT JOIN promotions p ON s.date = p.date
    WHERE s.date BETWEEN '2017-01-29' AND '2017-01-31'
    GROUP BY s.date,s.rate;

...मैंने इसका परीक्षण नहीं किया है, इसलिए इसमें कुछ गड़बड़ करने की आवश्यकता हो सकती है।

फिर जैसे ही आप अपने परिणाम सेट के माध्यम से लूप करते हैं, आप दो अलग-अलग उप-सरणी घोषित कर सकते हैं और अपनी पूरी सरणी बना सकते हैं।

$array=[];
$i=0;
while($row=mysqli_fetch_assoc($result)){
    $array[0][$i]["date"]=$row["date"];
    $array[0][$i]["rate"]=$row["rate"];
    $array[0][$i]["perc"]=$row["minperc"];
    $array[1][$i]["date"]=$row["date"];
    $array[1][$i]["rate"]=$row["rate"];
    $array[1][$i]["perc"]=$row["maxperc"];
    ++$i;
}

इस बिंदु तक, मैंने आपके उद्देश्य/उपयोग के बारे में बहुत सारी धारणाएँ बना ली हैं। मूल रूप से, शून्य को प्रतिशत डिफ़ॉल्ट के रूप में सेट करें, प्रत्येक दिनांक-दर युग्म के लिए उच्चतम और निम्नतम प्रतिशत के लिए क्वेरी (यदि शून्य है, तो शून्य उच्चतम और निम्नतम के रूप में दिखाई देगा) मूल्य)। परिणाम सेट के साथ आप जो चाहें करें।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. भू-स्थानिक डेटा के लिए तालिका संरचना

  2. लारवेल सिंपल मंथ सिलेक्शन

  3. php pdo emulate_prepares false stringify_fetches false int अभी भी स्ट्रिंग

  4. रूबी ऑन रेल्स में रनटाइम पर एक टेबल बनाएं

  5. 10k रिकॉर्ड के लिए LIKE ऑपरेटर के साथ mysql क्वेरी को ऑप्टिमाइज़ करें