mysql - 从mysql中的非空列中选择值

标签 mysql

Table Photos-------

photo1  imagem1.jpg
photo2  imagem2.jpg
photo3  empty
photo4  empty
photo5  enpty

我有一个表,其中 5 列代表照片。 所以, 我想从表、所有列中选择 *...但如果其中一个或多个为空,我不想选择。这可能吗?

例如,如果我这样做

Select * from table Photos where photo1 is not null, and photo2 is not null, and photo3 is not null and photo4 is not null and photo5 is not null 

这是不可能的,因为如果其中一个为空...选择不会给出任何值。

有人知道另一种方法吗?

而且,我需要它,因为如果我想这样做: 问题是......当我使用 php 时,例如这个

if($project['photo5']!='' and $project['photo5']!=null){ 
(here i show the picture)
}

如果该行为空... php 将被忽略并显示错误图像

最佳答案

Concat() 如果任何一个值 concat 为 null ( mySQL DOCS ) 将返回 null,因为您只想显示不为 null 的记录 concat 在一起并检查是否为 null。

Select * 
from table Photos 
where concat(photo1,photo2,photo3,photo4,photo5) is not null 

AND...如果您使用or而不是AND,并且可能使用not,那么您的方法应该有效。我只是觉得上面的内容更容易阅读。

关于mysql - 从mysql中的非空列中选择值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35004429/

相关文章:

php - 如何让 mysqli 实例在函数中被识别?

php - 填补多维数组中的空白

mysql - Firebird 数据库上的 Haversine 公式

php - 从查询中检索特定键值并在查询中获取它们对的计数

php - 在 Android 中显示来自 MySQL 数据库的数据,类似于 Twitter Feed

php - 动态更新 MySql 表

php - 我无法将 drupal 迁移到本地服务器

android 中的 java.lang.ClassCastException : org. ksoap2.serialization.SoapObject

mysql - 在选择查询中使用变量

mysql - SQL:处理 INSERT INTO 的列不匹配