web-dev-qa-db-fra.com

Changer les données d'une cellule dans mysql

Comment puis-je changer les données dans une seule cellule d'une table mysql. J'ai un problème avec UPDATE car tous les paramètres d'une colonne changent mais je ne souhaite en changer qu'un seul. Comment?

148
kasrsf

Vous devrez probablement spécifier les lignes que vous souhaitez mettre à jour ...

UPDATE 
    mytable
SET 
    column1 = value1,
    column2 = value2
WHERE 
    key_value = some_value;
176
Brian Hooper

Ma réponse est la répétition de ce que d'autres ont dit auparavant, mais je pensais ajouter un exemple en utilisant MySQL uniquement parce que les réponses précédentes étaient un peu cryptiques pour moi.

La forme générale de la commande que vous devez utiliser pour mettre à jour la colonne d'une seule ligne:

UPDATE my_table SET my_column='new value' WHERE something='some value';

Et voici un exemple.

AVANT

mysql> select aet,port from ae;
+------------+-------+
| aet        | port  |
+------------+-------+
| DCM4CHEE01 | 11112 | 
| CDRECORD   | 10104 | 
+------------+-------+
2 rows in set (0.00 sec)

FAIRE LE CHANGEMENT

mysql> update ae set port='10105' where aet='CDRECORD';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

APRÈS

mysql> select aet,port from ae;
+------------+-------+
| aet        | port  |
+------------+-------+
| DCM4CHEE01 | 11112 | 
| CDRECORD   | 10105 | 
+------------+-------+
2 rows in set (0.00 sec)
111
slm

UPDATE ne modifiera que les colonnes que vous avez spécifiquement listées.

UPDATE some_table
SET field1='Value 1'
WHERE primary_key = 7;

La clause WHERE limite les lignes mises à jour. Généralement, vous l'utiliseriez pour identifier la valeur de clé primaire (ou ID) de votre table, de sorte que vous ne mettiez à jour qu'une seule ligne.

La clause SET indique à MySQL les colonnes à mettre à jour. Vous pouvez lister autant de colonnes que vous le souhaitez. Tout ce que vous ne listez pas ne le fera pas se mettre à jour.

29
VoteyDisciple

UPDATE ne modifie que les valeurs spécifiées:

UPDATE table SET cell='new_value' WHERE whatever='somevalue'
10
gruntled

Essayez ce qui suit:

UPDATE TableName SET ValueName=@parameterName WHERE
IdName=@ParameterIdName
9
user3668628

PDATE TABLE<tablename>SET<COLUMN=VALUE><CONDITION>

Exemple:

UPDATE TABLE teacher SET teacher_name='NSP' WHERE teacher_id='1'
7
NSP

essaye ça.

UPDATE `database_name`.`table_name` SET `column_name`='value' WHERE `id`='1';
3
abhay

Certaines colonnes de MySQL ont une clause "on update", voir:

mysql> SHOW COLUMNS FROM your_table_name;

Je ne suis pas sûr de savoir comment mettre à jour cela, mais je publierai une modification lorsque je le saurai.

0
Jake_Howard