Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 从ResultSet中删除空值_Mysql_Sql_Null - Fatal编程技术网

Mysql 从ResultSet中删除空值

Mysql 从ResultSet中删除空值,mysql,sql,null,Mysql,Sql,Null,我正在使用MySQL 我已经使用select with JOIN等生成了以下结果集,但是如果可能的话,我希望删除空值并生成类似于第二个表的结果 ----------------------------------- |#|IMG_KEY|IMAGE|XX_STYLE|YY_STYLE| ----------------------------------- |1| 1 |PIX01| <NULL> | STYLEB | |2| 1 |PIX01| STYLEA | &

我正在使用MySQL

我已经使用select with JOIN等生成了以下结果集,但是如果可能的话,我希望删除空值并生成类似于第二个表的结果

-----------------------------------
|#|IMG_KEY|IMAGE|XX_STYLE|YY_STYLE|
-----------------------------------
|1|   1   |PIX01| <NULL> | STYLEB |
|2|   1   |PIX01| STYLEA | <NULL> |
|3|   2   |PIX02| <NULL> | STYLEB |
|4|   2   |PIX02| STYLEA | <NULL> |
|5|   3   |PIX03| <NULL> | STYLEB |
|6|   3   |PIX03| STYLEA | <NULL> |
-----------------------------------

是否可以使用
groupby
和/或
具有
etc关键字的组合来执行此操作。我尝试了
合并
,但没有成功。

尝试使用
GROUP\u CONCAT()

结果:

| ID | IMG_KEY | IMAGE | XX_STYLE | YY_STYLE |
----------------------------------------------
|  1 |       1 | PIX01 |   STYLEA |   STYLEB |
|  3 |       2 | PIX02 |   STYLEA |   STYLEB |
|  5 |       3 | PIX03 |   STYLEA |   STYLEB |
| ID | IMG_KEY | IMAGE | XX_STYLE | YY_STYLE |
----------------------------------------------
|  1 |       1 | PIX01 |   STYLEA |   STYLEB |
|  2 |       2 | PIX02 |   STYLEA |   STYLEB |
|  3 |       3 | PIX03 |   STYLEA |   STYLEB |
要获取从1开始的行号,请尝试以下操作:

SELECT @Row:=@Row+1 AS ID, IMG_KEY, IMAGE
  ,GROUP_CONCAT(XX_STYLE) XX_STYLE
  ,GROUP_CONCAT(YY_STYLE) YY_STYLE
  FROM MyTable
     , (SELECT @Row:=0) r
GROUP BY IMG_KEY, IMAGE
结果:

| ID | IMG_KEY | IMAGE | XX_STYLE | YY_STYLE |
----------------------------------------------
|  1 |       1 | PIX01 |   STYLEA |   STYLEB |
|  3 |       2 | PIX02 |   STYLEA |   STYLEB |
|  5 |       3 | PIX03 |   STYLEA |   STYLEB |
| ID | IMG_KEY | IMAGE | XX_STYLE | YY_STYLE |
----------------------------------------------
|  1 |       1 | PIX01 |   STYLEA |   STYLEB |
|  2 |       2 | PIX02 |   STYLEA |   STYLEB |
|  3 |       3 | PIX03 |   STYLEA |   STYLEB |
请参见使用

group_concat(xx_style,yy_style) 

尝试验证空值。由于这些空值,将来可能会出现错误。

使用查询本身删除这些“空”值。为此,请在查询中添加以下行

where XX_STYLE is not null and YY_STYLE is not null

如果您提供您的查询,然后我会给你完整的查询

好的,它会帮助你显示查询。xx_样式和yy_样式的数据类型是什么?你在使用什么服务器?
xx_样式
&
yy_样式
是计算列,如果你不显示任何查询,则没有任何意义。xx_样式和yy_样式的数据类型是字符串。我没有包括实际的数据查询,因为我希望不改变它,如果可能的话,并通过使用我提供的关键字来实现我的目标。hims056提供的答案很有效,非常感谢。然而,还有一个问题,如果列或列组中的所有值都为NULL,那么组_CONCAT()是否返回NULL?很抱歉,我在上次回复中包含了这篇文章,但我按错了键,它丢失了。我是新手,这是我在这个论坛上的第一个问题。@user2655360-是的。如果列或列组中的所有值都是
NULL
,它将返回
NULL
。请参阅。如果将group by与or子句一起使用,则这对结果不起作用。例如,从
mytable
中选择thingOne,其中category='Cat1'或category2='Cat1',thingOne不是空的,按柱面分组;