MySQL direct INSERT INTO avec la clause WHERE
J'ai essayé de googler pour cette question, mais seulement de trouver comment le faire en utilisant deux tables, comme suit,
INSERT INTO tbl_member
SELECT Field1,Field2,Field3,...
FROM temp_table
WHERE NOT EXISTS(SELECT *
FROM tbl_member
WHERE (temp_table.Field1=tbl_member.Field1 and
temp_table.Field2=tbl_member.Field2...etc.)
)
Il a travaillé pour un scénario,Mais maintenant, mon intérêt est de télécharger les données directement à partir du programme lui-même sans l'aide de deux tables. Ce que je veux, c'est de télécharger les données qui n'est pas dans le tableau. Le sql j'avais dans ma tête était comme le suivant,
INSERT INTO tbl_member (SensorIdValue, DataTimeValue, DataInValue, IncompleteValue, SpiValue, InfoValue)
VALUES ('Sensor.org', '20121017150103', 'eth0','','','')
WHERE (SensorIdValue != 'Sensor.org'AND DataTimeValue != '20121017150103'AND DataInValue != 'eth0'AND IncompleteValue != ''AND SpiValue != ''AND InfoValue != '');
Mais c'est faux.. je sais que la façon correcte de le faire s'il vous plait, Merci beaucoup 🙂
source d'informationauteur Hasitha Shan
Vous devez vous connecter pour publier un commentaire.
INSERT
syntaxe ne peut pas avoirWHERE
clause. Le seul moment où vous trouverezINSERT
aWHERE
clause est lorsque vous utilisezINSERT INTO...SELECT
déclaration.La première syntaxe est déjà correct.
Exemple de la façon d'effectuer un INSERT INTO SELECT avec une clause where.
Si je comprends l'objectif est d'insérer un nouvel enregistrement dans une table, mais si les données sont déjà sur la table: l'ignorer! Voici ma réponse:
L'enregistrement à insérer dans les nouveaux champs de valeur.
Il est possible d'écrire l'instruction INSERT INTO dans deux formes.
La première forme ne spécifie pas le nom des colonnes dans lesquelles les données seront insérées, seules leurs valeurs:
La deuxième forme précise à la fois les noms de colonnes et les valeurs à insérer: