Sintaxe incorreta no sql

0

Eu tenho uma tabela chamada sp_en e esta tabela tem 2 colunas: "no" e "value". Eu quero mudar "valor" da linha com "não": 4433 para 1, então eu digite o comando abaixo:

INSERT INTO sp_en (Say) WHERE no='4433' values ("1");

Erro retornado é:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'where no='4433'(Say) values ("1")' at line 1

Qual é o problema? Todas as respostas serão apreciadas ...

    
por Konko 11.03.2017 / 12:52

2 respostas

3

Você não deseja inserir quando a entrada que deseja modificar já está na tabela. Você provavelmente deseja atualizar:

UPDATE TABLE sp_en SET value = 1 WHERE no = 4433;

Isso atualizará todas as linhas nas quais a coluna no tenha valor 4433 e as linhas definidas value como 1.

Eu assumi colunas inteiras.

    
por 11.03.2017 / 12:56
0
A sintaxe

INSERT é usada apenas para inserir novos dados no banco de dados. Para atualizar ou alterar o valor UPDATE syntax é usado:

UPDATE TABLE table_name
SET column_name = value
WHERE column_name = value;

Na sintaxe acima, substitua a palavra minúscula por seus respectivos valores. Além disso, column_name usado em SET é o que você deseja alterar, enquanto o usado em WHERE é a coluna condicional.

Então a consulta se torna:

UPDATE TABLE so_en
SET my_column = 1
WHERE no = 4433;

Isso é tudo !!!

P.S Você pode encontrar essa resposta facilmente no google. Então seria melhor se você fizesse mais pesquisas. E esta questão pertence a dba stackexchange

    
por 11.03.2017 / 19:50