ege*_*ter 7 php mysql laravel-4
当期望对象时,此查询返回null.
$vow = DB::table('media_featured')->where('is_video_of_the_week', 1)->
where('video_of_week_expired', '!=', 1)->first();
CREATE TABLE `media_featured` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`media_id` int(10) unsigned DEFAULT NULL,
`is_video_of_the_week` tinyint(1) DEFAULT NULL,
`is_featured` tinyint(1) DEFAULT NULL,
`video_of_week_expired` tinyint(1) DEFAULT NULL,
`featured_expired` tinyint(1) DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
`deleted_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `media_featured_media_id_foreign` (`media_id`),
CONSTRAINT `media_featured_media_id_foreign` FOREIGN KEY (`media_id`) REFERENCES `media` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
Run Code Online (Sandbox Code Playgroud)
记录可能有is_video_of_the_week = 1,video_of_week_expired = NULL但上面的查询返回null.
有任何想法吗?
NULL 值不等于或不等于其他任何值.
所以column != NULL总是假的column = NULL
要检查列是否包含NULL值,您需要使用IS NULL运算符.
如果是laravel db query generator,你可以使用
->whereNull('video_of_week_expired')
Run Code Online (Sandbox Code Playgroud)
方法.
PS:如果video_of_week_expired假设是一个类似于标志的列,你最好NOT NULL使用0/ 1值,而不是NULL/1
如果该值video_of_week_expired是NULL还是1那么你可以使用
- > whereNull()
否则,如果值像一个标志,0或者1你可以尝试使用
- > where('video_of_week_expired','<>',1)
这<>是一个'不等于'运算符.
| 归档时间: |
|
| 查看次数: |
14910 次 |
| 最近记录: |