代码之家  ›  专栏  ›  技术社区  ›  webmaster pf

搜索和替换空数据查询

  •  0
  • webmaster pf  · 技术社区  · 6 年前

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

    提取表记录-3种不同类型(Drupal 6 DB),我希望空记录(242)与空记录(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 回复  |  直到 6 年前
        1
  •  3
  •   Madhur Bhaiya    6 年前

    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