MySQL - insérer si n'existe pas encore
Je veux exécuter cette requête MySQL:
INSERT INTO `cron-stats` (`user`) VALUES (".(int)$d['by-user'].")
Chaque fois que l'utilisateur n'existe pas encore, comme dans:
SELECT 1
FROM `cron-stats`
WHERE `user` = ".(int)$d['by-user']."
Comment puis-je exécuter cela en une seule requête?
rendre le champ
Et d'ajouter IGNORER après l'INSERTION
Avez-vous déjà des études de la
double possible de Comment insérer si n'existe pas " dans MySQL?
unique
Et d'ajouter IGNORER après l'INSERTION
Avez-vous déjà des études de la
INSERT
syntaxe de référence page?double possible de Comment insérer si n'existe pas " dans MySQL?
OriginalL'auteur Richard Rodriguez | 2013-01-26
Vous devez vous connecter pour publier un commentaire.
vous pouvez utiliser
ON DUPLICATE KEY UPDATE
mais dans le but d'effectuer la
INSERT
déclaration bien, vous devez définir unUNIQUE
index sur la colonneuser
.si la colonne n'a pas de
index
encore, exécuter l'instruction ci-dessous,UPDATE
pour les entrées existantes. Avant laUPDATE
fonctionne, je veux préparer pas les entrées existantes en Insérant les valeurs null. Est-ce la bonne solution?quelle est la raison pourquoi vous avez besoin d'insérer des valeurs null en premier?
Eh bien, il ne fonctionne pas. Voici la requête complète avec l'erreur: pastebin.com/PyHMY9RG
Ils travaillent séparément, s'.
vous avez le mot-clé
SET
dans la requête qui n'est pas supposé être là. l'enlever et de l'exécuter à nouveau.OriginalL'auteur John Woo
Un peu hacky, mais si vous utilisez un
SELECT
table dérivée au lieu deVALUES
que vous pouvez faire:SQL Violon démo
OriginalL'auteur lc.
Vous pouvez essayer cette aide, si la condition else
OriginalL'auteur Bkay