J'ai une base de données Mysql avec une table pour chaque jour, il va dans ce sens: my_table_20130310
, my_table_20130311
...Faites un SELECT sur toutes les tables entre 2 dates
Je veux faire une sélection sur toutes les tables, disons entre « 02.02.2013 » et « 28/03/2013 »
Il y a cette solution stupide qui consiste à transformer les dates données dans ce:
'2013/02/02' => 20130202
'2013/03/28' => 20130328
ensuite coulé dans (int) et faire une boucle:
$dbStartDate = str_replace('/', '', substr($startDate, 0, 10));
$dbEndDate = str_replace('/', '', substr($endDate, 0, 10));
for ($tbDate = $dbStartDate; $tbDate <= $dbEndDate ; $tbDate++) {
$res = 'SELECT * FROM my_table_' . $tbDate ;
...
...
}
Mais ce n'est pas une solution car il va essayer d'analyser tous les nombres entre 20130202 et 20130328 (20130299, 20130245 ....)
Une idée?
gars Thx
attente. Pourquoi voulez-vous avoir une table pour chaque jour? ne correspond pas au sens. Vous pouvez toujours utiliser GROUP BY pour regrouper les données par jour. – Raptor
Je pense que la racine du problème est que vous avez une table pour chaque jour. Si vous pouvez changer le schéma pour faire du jour une colonne (indexée et éventuellement partie de la clé), vos problèmes devraient disparaître. –
Pourquoi avez-vous des tables séparées pour les données quotidiennes, pourquoi ne pas simplement ajouter une colonne pour la date? Ça a l'air un peu ... bizarre. –