Mysql 处理两个条件的单选查询

Mysql 处理两个条件的单选查询,mysql,Mysql,我有一个select查询,其中有一个where条件 select column1,column2 from table1 where isnull(i.picturecolumn) != 1; picturecolumn是字节数据类型 我需要使用超链接列,如果超链接列为空,则查找图片列 select column1,column2 from table1 where isnull(i.hyperlinkcolumn) != 1; 即: 代码中有一个select查询,我需要替换为另一个

我有一个select查询,其中有一个where条件

  select column1,column2 from table1 where isnull(i.picturecolumn) != 1;
picturecolumn是字节数据类型

我需要使用超链接列,如果超链接列为空,则查找图片列

  select column1,column2 from table1 where isnull(i.hyperlinkcolumn) != 1;
即:


代码中有一个select查询,我需要替换为另一个select查询来处理此问题,有什么想法吗?

我不确定,但我认为这就是您要寻找的:
select column1,column2 
    from table1 
    where isnull(coalesce(i.hyperlinkcolumn, i.picturecolumn)) != 1;
从picturecolumn不为NULL或hyperlinkcolumn不为NULL的表1中选择col1、col2


基本上,如果这些列中的任何一列不为空,则返回结果。

我不确定,但我认为这就是您要查找的: 从picturecolumn不为NULL或hyperlinkcolumn不为NULL的表1中选择col1、col2


基本上,如果这些列中的任何一列不为null,则返回结果。

不为null-COALESCE不会返回1。不需要使用ISNULL,如果没有任何列返回NULL以外的值,则COALESCE将返回NULL。@OMG Ponies:我想我是在您键入注释的同时键入更正的。当我使用where isnulli.picturecolumn运行时,我没有得到正确的记录!=1我得到200条记录,其中当我运行where isNullCoalesci.hyperlinkcolumn,i.picturecolumn!=1.我得到1000条记录。@Shareye500:我希望第二个查询返回的结果比第一个查询多,因为它现在同时检查hyperlinkcolumn和picturecolumn。能否澄清预期结果?如果超链接为空,则不应同时合并这两列。请查找图片列,否则仅检查图片列。不为NULL-COALESCE不会返回1。不需要使用ISNULL,如果没有任何列返回NULL以外的值,则COALESCE将返回NULL。@OMG Ponies:我想我是在您键入注释的同时键入更正的。当我使用where isnulli.picturecolumn运行时,我没有得到正确的记录!=1我得到200条记录,其中当我运行where isNullCoalesci.hyperlinkcolumn,i.picturecolumn!=1.我得到1000条记录。@Shareye500:我希望第二个查询返回的结果比第一个查询多,因为它现在同时检查hyperlinkcolumn和picturecolumn。你能澄清一下你的预期结果吗?如果超链接为空,你不应该合并这两个列,如果超链接为空,请查找图片列,否则只检查图片列。不应该是picturecolumn不应该为NULL,hyperlinkcolumn不应该为NULL;我可能错了,但或条件抛出了错误数量的记录。不应为picturecolumn不为NULL,hyperlinkcolumn不为NULL;我可能错了,但条件抛出的记录数量错误。
select column1,column2 
    from table1 
    where isnull(coalesce(i.hyperlinkcolumn, i.picturecolumn)) != 1;