Il y a un champ age dans mysql, qui stocke la tranche d'âge. Le format est comme indiqué sur l'image. S'il est 0-0, il est illimité
.L'exigence actuelle est d'effectuer une recherche en fonction du groupe d'âge. Par exemple, je souhaite trouver toutes les données âgées de 25 à 34 ans.
Ensuite, voici le problème. Si vous utilisez et dans où, vous obtiendrez très peu de résultats, presque aucun. Si vous utilisez ou, les résultats deviendront plus nombreux, mais évidemment les résultats ne sont pas précis. Comment le trouver avec précision
Merci à tous pour vos réponses. La méthode que j'utilise actuellement est
.SELECT age FROM
jobs
WHERE ((substring_index(age,'-',1) >= 16 OR substring_index(age,'-',-1) = 0) OR (substring_index(age,'-',- 1) <= 24)) ET !(substring_index(age,'-',1) = 0 AND substring_index(age,'-',-1) = 0);
Cela fonctionne à peine, mais quelque chose semble bizarre
D'après ce que vous avez dit, si 30-55 correspond à 25-34, ça peut être comme ça
C'est difficile à juger. Le 30-55 ans répond-il aux conditions du 25-34 ans que vous souhaitez ? Ou faut-il que ce soit entre 25 et 34 ? Cela dépend de vos besoins spécifiques
Je suis très curieux de savoir pourquoi la structure de la table de données est conçue comme ceci. Pourquoi ne stocke-t-elle pas l'âge ? Si la structure du tableau est conçue comme ceci, pourquoi devons-nous récupérer des données âgées de 25 à 34 ans ? Votre âge n'est qu'une plage spécifiée, pas une valeur spécifique. Vous devez repenser la structure de votre table et ne pas commettre d'erreurs par erreur
.1. Si vous enregistrez la tranche d'âge comme ceci, devriez-vous créer une autre clé pour distinguer la tranche d'âge ?
2. La capture d'écran montre également des modèles de portée tels que 1-5, 2-6 et 3-4. Si l'utilisateur choisit 3, lequel doit-il choisir ?
Beaucoup de gens qui ne comprennent pas les fonctions intégrées de MySQL donnent des instructions aléatoires aux autres
La source du problème est que la conception de la base de données n'est pas raisonnable
Il est recommandé d'utiliser la pensée abstraite pour réfléchir : pensez aux informations stockées dans le champ d'âge du tableau comme à l'ensemble A, et pensez aux conditions dans lesquelles comme ensemble C. À quelle situation votre résultat final doit-il répondre ?
L'ensemble A et l'ensemble C ont une intersection
L'ensemble A est un sous-ensemble de l'ensemble C
L'ensemble C est lui-même de l'ensemble C
Ensuite, sur cette base, la structure de votre table actuelle n'est certainement pas adaptée. Si la quantité de données n'est pas importante, vous pouvez nettoyer les données hors ligne et diviser le champ d'âge en limite inférieure et limite supérieure, puis appliquer la méthode de filtrage de collecte. beaucoup.
La structure de votre table ne peut pas remplir la fonction que vous avez mentionnée