MySQL类型用于存储年份和未知年份'

时间:2014-09-11 16:05:05

标签: php mysql sql

我有一张桌子"照片"列#34;年"用于存储每张照片的制作年份。我使用的类型为int,0为未知'。 所以我经常要说:

if($year || $year == "0"){
    $query = ...

而不只是:

if($year){
    $query = ...

最佳做法是哪种数据类型适合存储年份值?我可以使用varchar,但之后我必须查找输入值,例如' thisisnotayear'等等 或者可以使用YEAR类型,但我如何查询"年未知"从数据库? - 我的意思是例如在列表中:

2002
2001
2000
year unknown

(用户可以用来过滤照片)

YEAR是一个不错的选择还是会出现问题?

1 个答案:

答案 0 :(得分:1)

使用YEAR类型并将此字段设置为ALLOW NULL,如下所示:

****`year` year(4) DEFAULT NULL,*****

CREATE TABLE IF NOT EXISTS `test` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `year` year(4) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

在PHP中使用:

if(! empty($year)){