搜索并替换查询以获取空数据

时间:2018-09-27 14:59:35

标签: mysql sql

我会用NULL值替换字段中的空数据。

提取表记录-3种不同的类型(Drupal 6 DB),我希望空的(242)像NULL的(156):

 INSERT INTO `content_field_lien_externe` (`vid`, `nid`, `delta`, `field_lien_externe_url`, `field_lien_externe_title`, `field_lien_externe_attributes`) VALUES
(10,    10, 0,  'http://www.onisep.fr', 'Lien ONISEP',  'a:0:{}'),
(156,   18, 3,  NULL,   NULL,   NULL),
(242,   219,    0,  '', NULL,   'a:0:{}');

我的查询是:

 UPDATE `content_field_lien_externe`
 SET `field_lien_externe_url` = replace(field_lien_externe_url, '', 'NULL')

什么都不做,所以缺少什么?

谢谢

1 个答案:

答案 0 :(得分:3)

NULL 不是字符串。只需将SET设为空,where字段为空即可。

执行以下操作(基于OP's comments):

UPDATE `content_field_lien_externe`
 SET `field_lien_externe_url` = NULL, 
      `field_lien_externe_attributes` = NULL 
WHERE `field_lien_externe_url` = '' OR 
      `field_lien_externe_url` IS NULL

此外::假设您在field_lien_externe_url列中只有空格的字符串。然后,仍然可以将其视为空字符串,并且可以使用Trim()函数,如下所示:

UPDATE `content_field_lien_externe`
 SET `field_lien_externe_url` = NULL, 
     `field_lien_externe_attributes` = NULL 
WHERE TRIM(field_lien_externe_url) = '' OR 
      `field_lien_externe_url` IS NULL
相关问题