我会用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')
什么都不做,所以缺少什么?
谢谢
答案 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