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
먼저, 만 나이 계산 쿼리
!-->!-->!-->!-->!-->
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;
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
답변을 작성하시기 전에 로그인 해주세요.