sql >> Database >  >> RDS >> Mysql

voeg meerdere gegevens toe aan een xml-bestand met behulp van PHP xmlwriter

Uw probleem zit in de vraag:

$sql = "SELECT *,YEAR(FROM_UNIXTIME(timestamp)) AS YEAR, 
                MONTH(FROM_UNIXTIME(timestamp)) AS MONTH 
         FROM ".NEWS_ARTICLES." GROUP BY YEAR, MONTH ORDER BY YEAR DESC, MONTH ";  

De meeste andere databases dan MySQL zouden deze zoekopdracht afwijzen, omdat je op 2 velden groepeert terwijl je veel velden selecteert.
De group by year, month zal slechts één (willekeurige) rij van een maand weergeven en alle andere verbergen.

De oplossing is om de group by clausule volledig en herschrijf de query als volgt:

$sql = "SELECT *,YEAR(FROM_UNIXTIME(timestamp)) AS YEAR, 
                MONTH(FROM_UNIXTIME(timestamp)) AS MONTH 
         FROM ".NEWS_ARTICLES." ORDER BY YEAR DESC, MONTH ASC";

Opmerking
Het is vreemd dat je geen WHERE . hebt clausule. Wil je echt alle . selecteren elke keer artikelen?
Een betere benadering zou zijn om het aantal artikelen dat in de zoekopdracht is geselecteerd te beperken met een filter.
Het is altijd sneller om in de database te filteren dan in php.



  1. TRIGGER's die ervoor zorgen dat INSERT's mislukken? Mogelijk?

  2. Java-project voltooid, nu jar- of .exe-bestand gemaakt (met database)

  3. Foreign Key SQL:alles wat u moet weten over Foreign Key Operations

  4. Gegevens uit database weergeven met basisadapter en lijstweergave