我有一张桌子"照片"列#34;年"用于存储每张照片的制作年份。我使用的类型为int
,0为未知'。
所以我经常要说:
if($year || $year == "0"){
$query = ...
而不只是:
if($year){
$query = ...
最佳做法是哪种数据类型适合存储年份值?我可以使用varchar
,但之后我必须查找输入值,例如' thisisnotayear'等等
或者可以使用YEAR
类型,但我如何查询"年未知"从数据库? - 我的意思是例如在列表中:
2002
2001
2000
year unknown
(用户可以用来过滤照片)
YEAR
是一个不错的选择还是会出现问题?
答案 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)){