Heim  >  Fragen und Antworten  >  Hauptteil

php - Wie führe ich eine Bereichssuche nach einem Altersgruppenfeld in einem Format ähnlich 20-35 in MYSQL durch?

Es gibt ein Feldalter in MySQL, das die Altersgruppe speichert. Wenn es 0-0 ist, ist es unbegrenzt

Die aktuelle Anforderung besteht darin, nach Altersgruppen zu suchen. Ich möchte beispielsweise alle Daten im Alter zwischen 25 und 34 Jahren finden.

Dann kommt hier das Problem. Wenn Sie „and“ verwenden, erhalten Sie nur sehr wenige Ergebnisse, fast keine. Wenn Sie „or“ verwenden, werden die Ergebnisse offensichtlich ungenau. So finden Sie es genau

Vielen Dank an alle für eure Antworten. Die Methode, die ich derzeit verwende, ist

SELECT age FROM jobs
WHERE ((substring_index(age,'-',1) >= 16 OR substring_index(age,'-',-1) = 0) OR (substring_index(age,'-',- 1) <= 24)) AND !(substring_index(age,'-',1) = 0 AND substring_index(age,'-',-1) = 0);

Es funktioniert kaum, aber irgendetwas fühlt sich komisch an

代言代言2710 Tage vor1026

Antworte allen(8)Ich werde antworten

  • 怪我咯

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

    按你说的30-55符合25-34的话,可以这样

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

    Antwort
    0
  • PHP中文网

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

    这个不好判断,30-55 符不符合你要的25-34的条件呢?还是必须要在25-34之内的?要看你的具体要求了

    Antwort
    0
  • 扔个三星炸死你

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

    我很好奇为什么数据表结构要这样设计 为什么不是存年龄? 如果这样设计表结构 为什么还要有取25-34岁之间的数据?你的年龄只是指定的一个区间不是一个具体数值 你应该重新去设计你的表结构 不要将错就错

    Antwort
    0
  • 伊谢尔伦

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

    1、你这样存年龄段,是不是应该在另起一个key来区分年龄的跨度。
    2、截图还出现1-5,2-6,3-4这样的跨度设计,如果用户要是3该选哪个合理。

    Antwort
    0
  • 代言

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

    一大堆对mysql内置函数都没认透的人也给别人乱指导

    Antwort
    0
  • 为情所困

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

    问题源头,数据库设计都不合理

    Antwort
    0
  • 滿天的星座

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

    推荐你用抽象的思维反推一下:将表里age字段存的信息看作集合 A,将 where 中的条件看作集合 C,你最终的结果是要符合什么情况?

    1. 集合 A 和集合 C 有交集

    2. 集合 A 是集合 C 的子集

    3. 集合 C 是集合 C 的自己

    然后在这个基础上,你当前表结构肯定是不适合的,如果数据量不大的话,可以对数据做个离线清洗,将 age 字段拆分成 lower limit 和 upper limit,这样再做集合筛选方法就很多了。

    Antwort
    0
  • 伊谢尔伦

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

    你这表结构无法实现你说的功能

    Antwort
    0
  • StornierenAntwort