Extraire avec HAVING en MySQL
Résolu
Bonjour,
voilà mon problème, je souhaite extraire tous les informations de ma base de données qui comporte dans le champs "minute" de la minute en cour. Seulement mon champs "minute" peut contenir plusieurs minutes et sera enregistré sous forme 0,1,2,3 ou tout simplement 1.
Dans le premier cas cela signifie que le champs doit être lus à 0 minute (11h00), 1 minute (11h01), etc... Dans le deuxième uniquement les 1 minute (11h01).
Ma question : comment faire pour récupérer tous les champs contenant uniquement "1" pas "11" ou "21" mais "1".
J'ai pensé à utiliser having : SELECT * FROM ma_table HAVING 'minute'=1
mais cela me renvoie uniquement les enregistrements ou le champs "minute" commence par "1".
Merci de votre aide.
voilà mon problème, je souhaite extraire tous les informations de ma base de données qui comporte dans le champs "minute" de la minute en cour. Seulement mon champs "minute" peut contenir plusieurs minutes et sera enregistré sous forme 0,1,2,3 ou tout simplement 1.
Dans le premier cas cela signifie que le champs doit être lus à 0 minute (11h00), 1 minute (11h01), etc... Dans le deuxième uniquement les 1 minute (11h01).
Ma question : comment faire pour récupérer tous les champs contenant uniquement "1" pas "11" ou "21" mais "1".
J'ai pensé à utiliser having : SELECT * FROM ma_table HAVING 'minute'=1
mais cela me renvoie uniquement les enregistrements ou le champs "minute" commence par "1".
Merci de votre aide.
2 réponses
-
Le having ne s'utilise qu'après un group by... Ici tu dois utilisé un where minute = 1
-
Et pourquoi pas un petit REGEX.
Je viens de trouver une solution, les expressions régulières : WHERE minute REGEX '^([0-9]+,)*".$minute."(,[0-9]+)*$'
Pour ceux qui en aurais besoin et qui ne comprenne pas.
- ^([0-9]+,)* : La chaine peut comporter des chiffres suivit d'une virgule en début de chaine.
- ($minute) : Suivit ensuite de la minute en cour.
- (,[0-9]+)* : La chaine peut comporter une virgule suivit de chiffre en fin de chaine.
Encore merci Breub62.