recherche

Maison  >  Questions et réponses  >  le corps du texte

php - Comment effectuer une recherche par plage pour un champ de tranche d'âge dans un format similaire à 20-35 ans dans MYSQL ?

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

代言代言2769 Il y a quelques jours1078

répondre à tous(8)je répondrai

  • 怪我咯

    怪我咯2017-06-10 09:49:49

    D'après ce que vous avez dit, si 30-55 correspond à 25-34, ça peut être comme ça

    select * from tbl where left(age,2)<=34 and right(age,2)>=25;

    répondre
    0
  • PHP中文网

    PHP中文网2017-06-10 09:49:49

    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

    répondre
    0
  • 扔个三星炸死你

    扔个三星炸死你2017-06-10 09:49:49

    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

    .

    répondre
    0
  • 伊谢尔伦

    伊谢尔伦2017-06-10 09:49:49

    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 ?

    répondre
    0
  • 代言

    代言2017-06-10 09:49:49

    Beaucoup de gens qui ne comprennent pas les fonctions intégrées de MySQL donnent des instructions aléatoires aux autres

    répondre
    0
  • 为情所困

    为情所困2017-06-10 09:49:49

    La source du problème est que la conception de la base de données n'est pas raisonnable

    répondre
    0
  • 滿天的星座

    滿天的星座2017-06-10 09:49:49

    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 ?

    1. L'ensemble A et l'ensemble C ont une intersection

    2. L'ensemble A est un sous-ensemble de l'ensemble C

    3. 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.

    répondre
    0
  • 伊谢尔伦

    伊谢尔伦2017-06-10 09:49:49

    La structure de votre table ne peut pas remplir la fonction que vous avez mentionnée

    répondre
    0
  • Annulerrépondre