테스트 사이트 - 개발 중인 베타 버전입니다

10대 20대 검색 하려면 어떻게 하면 좋을까요?? 채택완료

$sex = ($sex) ? $sex : "F";

$sql_mb="select * from $g5[member_table] where mb_open='1'  and mb_sex ='$sex'  and mb_2='1' order by rand() limit 16";

 

현재 쿼리문에서요

 

mb_birth  문을 10대 검색 ~50대이상 검색으로 쿼리를 짤려면 어떻게 하면 좋을까요??

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

채택된 답변
+20 포인트

먼저, 만 나이 계산 쿼리

SELECT YEAR(MAKEDATE(0,DATEDIFF(CURDATE(), '1980-02-12')))-2000;

// 41

SELECT YEAR(MAKEDATE(0,DATEDIFF(CURDATE(), '1994-12-25')))-2000;

// 26

 

연령대를 구하는 쿼리 (만 나이에서 10으로 나눈 후 10을 곱하기)

SELECT FLOOR((YEAR(MAKEDATE(0,DATEDIFF(CURDATE(), '1980-02-12')))-2000)/10)*10;

// 40

SELECT FLOOR((YEAR(MAKEDATE(0,DATEDIFF(CURDATE(), '1994-12-25')))-2000)/10)*10;

// 20

DROP TABLE IF EXISTS `zoo6`;

CREATE TABLE IF NOT EXISTS `zoo6` (

  `mb_no` int(11) NOT NULL AUTO_INCREMENT,

  `mb_id` varchar(20) NOT NULL DEFAULT '',

  `mb_birth` varchar(20) NOT NULL DEFAULT '',

  PRIMARY KEY (`mb_no`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;</p>

<p>INSERT INTO `zoo6` VALUES(1, 'test1', '19800526');

INSERT INTO `zoo6` VALUES(2, 'test2', '19941225');

INSERT INTO `zoo6` VALUES(3, 'test3', '20030613');

INSERT INTO `zoo6` VALUES(4, 'test4', '20050815');

INSERT INTO `zoo6` VALUES(5, 'test5', '19660412');

INSERT INTO `zoo6` VALUES(6, 'test6', '19550904');

INSERT INTO `zoo6` VALUES(7, 'test7', '20150501');

INSERT INTO `zoo6` VALUES(8, 'test8', '19760914');

INSERT INTO `zoo6` VALUES(9, 'test9', '19881111');

 

SELECT mb_id, FLOOR((YEAR(MAKEDATE(0,DATEDIFF(CURDATE(), DATE_FORMAT(mb_birth,'%Y-%m-%d'))))-2000)/10)*10 AS `mb_age` FROM `zoo6`;

mb_id    mb_age

test1    40

test2    20

test3    10

test4    10

test5    50

test6    60

test7    0

test8    40

test9    30

 

20대

SELECT * FROM `zoo6` WHERE FLOOR((YEAR(MAKEDATE(0,DATEDIFF(CURDATE(), DATE_FORMAT(mb_birth,'%Y-%m-%d'))))-2000)/10)*10 = 20;

mb_no    mb_id    mb_birth

2    test2    19941225

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인

전체 질문 목록

🐛 버그신고