>  Q&A  >  본문

php - MYSQL에서 20-35와 유사한 형식으로 연령 그룹 필드에 대한 범위 검색을 수행하는 방법은 무엇입니까?

mysql에는 연령 그룹을 저장하는 필드가 있습니다. 형식은 그림과 같습니다. 0-0이면 무제한입니다

현재 요구사항은 연령대를 기준으로 검색하는 것입니다. 예를 들어 25~34세의 모든 데이터를 찾고 싶습니다.

여기서 문제가 발생합니다. and를 사용하면 결과가 거의 나오지 않고, or를 사용하면 결과가 더 많아지지만 분명히 결과가 정확하지 않습니다. 정확하게 찾는 방법

제가 현재 사용하고 있는 방법은

입니다. 답변주신 모든 분들께 감사드립니다.

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);

거의 효과가 없는데 뭔가 이상한 느낌

代言代言2659일 전991

모든 응답(8)나는 대답할 것이다

  • 怪我咯

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

    말씀하신 대로 30-55가 25-34와 일치하면 이렇게 될 수도 있겠네요

    으아아아

    회신하다
    0
  • PHP中文网

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

    이것은 판단하기 어렵습니다. 30-55가 원하는 25-34의 조건을 충족합니까? 아니면 25~34 사이여야 하나요? 특정 요구 사항에 따라 다릅니다

    회신하다
    0
  • 扔个三星炸死你

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

    데이터 테이블 구조가 왜 이렇게 되어 있는지 너무 궁금합니다. 테이블 구조가 이렇게 설계되어 있다면 왜 25~34세 사이의 데이터를 가져와야 할까요? 나이는 특정 범위가 아니라 특정 값이 아니라 테이블 구조를 다시 디자인해야 하며 실수하지 마세요

    회신하다
    0
  • 伊谢尔伦

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

    1. 이렇게 연령대를 저장하면 연령대를 구분하는 키를 하나 더 만들어야 하나요?
    2. 스크린샷에는 1-5, 2-6, 3-4 등의 스팬 디자인도 나와 있습니다. 사용자가 3을 선택한다면 어떤 것을 선택해야 할까요?

    회신하다
    0
  • 代言

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

    MySQL에 내장된 기능을 이해하지 못하는 사람들이 다른 사람들에게 무작위로 지침을 제공하는 경우가 많습니다

    회신하다
    0
  • 为情所困

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

    문제의 원인은 데이터베이스 설계가 불합리하다는 것입니다

    회신하다
    0
  • 滿天的星座

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

    추상적인 사고를 통해 다시 생각해 보는 것이 좋습니다. 테이블의 age 필드에 저장된 정보를 세트 A로 생각하고 어디에 있는 조건을 세트 C로 생각하세요. 최종 결과는 어떤 상황에 부합해야 할까요?

    1. 세트 A와 세트 C에는 교차점이 있습니다

    2. 세트 A는 세트 C

    3. 의 하위 집합입니다.
    4. 세트 C는 세트 C

    5. 그 자체입니다.

    이를 기준으로 현재 테이블 구조는 확실히 적합하지 않습니다. 데이터 양이 크지 않으면 오프라인으로 데이터를 정리하고 연령 필드를 하한과 상한으로 분할한 다음 컬렉션 필터링 방법을 사용할 수 있습니다. 많이.

    회신하다
    0
  • 伊谢尔伦

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

    귀하의 테이블 구조는 귀하가 언급한 기능을 구현할 수 없습니다

    회신하다
    0
  • 취소회신하다