2010-11-28 4 views
1

Ma table est composée de 3 valeurs-Comment vérifier si des données existent dans ma table SQL et si elles n'insèrent pas les données les plus récentes?

  • longue
  • court
  • id
id

est une valeur int incrémentation automatique et le reste sont des textes. Mon script PHP récupère la dernière version d'un programme toutes les demi-heures et le stocke aussi longtemps dans une table SQL. Ce que je veux, c'est que le script php vérifie si la valeur est déjà dans la table (c'est-à-dire qu'il n'y a pas de nouvelles versions). Si ce n'est pas le cas, je veux qu'il insère les nouvelles données. Juste pour que cela soit clair, je ne remplace pas la valeur "long". J'en fais simplement une nouvelle valeur et 'id' tient un registre du nombre de versions qu'il y a eu.

Répondre

4

Utilisez le mot-clé EXISTS.

INSERT INTO Table (Col1, Col2, Col3) 
Values(?, ?, ?) 
WHERE NOT EXISTS (
SELECT Col1 FROM TABLE 
WHERE Col1 = ? AND Col2 = ? AND Col3 =?) 

Vous pouvez déterminer les colonnes dont vous avez réellement besoin de tester.

0

Vous pouvez mettre un UNIQUE indice sur la longue colonne et utiliser INSERT IGNORE:

INSERT IGNORE INTO versions (long, short) 
VALUES (?, ?) 

Si la clé existe déjà MySQL va générer un avertissement (pas une erreur) et ne sont ni insérer ou mettre à jour des lignes.

Questions connexes