Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa noite,
Preciso criar um comando sql update para alterar somente os campos de uma tabela que estejam nulos, usei o seguinte comando:
update estoque set ncm='99999999' where ncm = 'null'Só para complementar, um campo null é um campo sem nenhum conteúdo, nada mesmo e nada é diferente 'null' Faça um teste inserindo a palavra null em algum campo.
.... a não ser num raro caso de uma string conter a palavra ..... null
No Mysql, será inserida uma palavra(null no caso) que é diferente do null,nesse dito SGDB. Ou estou enganado?
Foi uma piada ou tentativa de uma ...
Não @Motta, é sério mesmo. Sei que a string 'null' é completamente diferente do null (sem aspas). Usando o Phpmyadmin por exemplo ele exibe um campo null alinhado a direita (para diferenciar da string 'null' ).
Para entender o meu questionamento segue um pequeno exemplo.
CREATE TABLE IF NOT EXISTS `test` (
`id` int(2) NOT NULL AUTO_INCREMENT,
`name` varchar(16) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf-8 AUTO_INCREMENT=1 ;
INSERT INTO `test`(`name`) VALUES
('' ),
('null'),
('NULL'),
(NULL),
(null)
SELECT * FROM `test` WHERE name = ('null' OR 'NULL);
SELECT * FROM `test` WHERE name is null;É isto mesmo é null é diferente de null , comparar dois campos null
campo1 = campo2
estando ambos nulos retorna false
update estoque set ncm='99999999' where ncm is null