以下是我的MySQL表。我想從我的表hello
中選擇一個特定範圍的值。如何在MySQL表中選擇特定範圍的值?
name age job gender
A 33 dgfd m
b 44 gdfg f
c 21 jhkh m
e 23 etertr m
我該如何選擇年齡屬於20-30歲年齡段的男性。
SELECT hello.*
WHERE hello.age='20-30' AND hello.gender='m';
以下是我的MySQL表。我想從我的表hello
中選擇一個特定範圍的值。如何在MySQL表中選擇特定範圍的值?
name age job gender
A 33 dgfd m
b 44 gdfg f
c 21 jhkh m
e 23 etertr m
我該如何選擇年齡屬於20-30歲年齡段的男性。
SELECT hello.*
WHERE hello.age='20-30' AND hello.gender='m';
您可以使用WHERE
子句來過濾數據:
select name, age, job, gender
from hello
where age >=20
and age <=30
and gender = 'm'
這也可以使用BETWEEN
寫成:
select name, age, job, gender
from hello
where age between 20 and 30
and gender = 'm'
通常情況下,您需要存儲一個人的出生日期而不是age
,然後可以在需要時計算年齡。
SELECT * FROM hello WHERE age>=20 AND age <=30 AND gender='m';
因爲年齡從去年到今年改變你可以做到這一點。
設置表是這樣的:
delimiter $$
CREATE TABLE `hello` (
`name` varchar(45) NOT NULL,
`birthdate` date DEFAULT NULL,
`job` varchar(45) DEFAULT NULL,
`gender` enum('m','f') DEFAULT NULL,
PRIMARY KEY (`name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8$$
價值觀我用:
'A', '1980-08-04', 'clerk', 'm'
'B', '1969-10-12', 'waitress', 'f'
'C', '1992-09-16', 'pilot', 'm'
'd', '1991-02-21', 'unemployed', 'm'
SQL查詢:
select name,TIMESTAMPDIFF(YEAR,birthdate,current_date) as age,job,gender from hello where birthdate > current_date - interval 30 YEAR and birthdate < current_date - interval 20 year;
返回答案,查詢
name age job gender
C 20 pilot m
d 22 unemployed m
在此處添加到SQLFiddle。 http://www.sqlfiddle.com/#!2/0143c/1/0
的[選擇的行與在特定範圍內的SQL查詢]
可能重複(http://stackoverflow.com/questions/12794991/select-rows-with-in-particular-range-sql-query) – JNK 2013-03-22 15:44:44
I」已經用年齡計算增加了一個例子。 – 2013-03-22 17:19:18