2012-01-06 52 views
0

我有一个名为products有以下的列表:如何用mysql中的特殊条件填充空(间隙)列?

  • 产品编号:编号从1到800
  • 名称:产品名称
  • 说明:关于产品的更多信息

的表的看法:

productID | name | description 
----------+---------+--------------- 
     145 | name145 | description145 
     146 | name146 | "empty col" 
     147 | name147 | description147 
     148 | name148 | "empty col" 
     149 | name149 | "empty col" 
     150 | name150 | "empty col" 
     151 | name151 | "empty col" 
     152 | name152 | description152 

现在我想要要知道我可以如何在这个空白栏上设置一个“x-name-description”的即时值,并在这个空白间隙不连续时填充它们?

+0

你想在查询结果中显示一些默认值?或者你想在表中的默认值? – Brian 2012-01-06 21:36:17

回答

1

如果你想返回一个默认值字段description查询是否为空,尝试像

SELECT productID, name, IFNULL(description, "some value") 
from products WHERE... 

查询如果你想更新表,只需使用

UPDATE products set description = 'some value' WHERE description IS NULL 

这项工作如果记录的description字段为NULL。

+0

Tnx,你的NULL的意思是在col中设置“NULL”? – Hadi 2012-01-07 06:24:59

+0

代码不起作用,我想因为cols是空的而不是null。我们可以做一些工作来设置每个列的NULL值,它是空的吗? – Hadi 2012-01-07 07:11:47

+0

@哈迪:什么是*空*?等于''''? – 2012-01-07 11:34:28

1

这发生在我身上的一些类似的情况。我所做的,是

IFNULL(NULLIF(X, ''), 0) 

属性X被认为是空的,如果它是一个空字符串,所以以后就可以视为零,而不是最后一个值声明。在另一种情况下,它将保持其原始价值。

无论如何,希望这个帮助。