Ver Mensaje Individual
  #2 (permalink)  
Antiguo 07/05/2010, 05:56
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: UPDATE si existe e INSERT si no existe renglon.

Puedes crear un indice unico compuesto con los dos campos.

Del manual

Cita:
12.2.5.3. INSERT ... ON DUPLICATE KEY UPDATE Syntax

If you specify ON DUPLICATE KEY UPDATE, and a row is inserted that would cause a duplicate value in a UNIQUE index or PRIMARY KEY, an UPDATE of the old row is performed. For example, if column a is declared as UNIQUE and contains the value 1, the following two statements have identical effect:

INSERT INTO table (a,b,c) VALUES (1,2,3)
ON DUPLICATE KEY UPDATE c=c+1;

UPDATE table SET c=c+1 WHERE a=1;

...
En tu caso seria

Código MySQL:
Ver original
  1. INSERT INTO tutbla (value,phpvar,language) VALUES (x,"tal","en")

Suponiendo que has creado un indice unico con los dos campos


Sigue el mismo manual....

Cita:
12.1.8. CREATE INDEX Syntax

CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name
[index_type]
ON tbl_name (index_col_name,...)
[index_type]

index_col_name:
col_name [(length)] [ASC | DESC]

index_type:
USING {BTREE | HASH | RTREE}

....
Código MySQL:
Ver original
  1. CREATE UNIQUE INDEX index_phpvar_language
  2. ON tutabla (phpvar,language)

creo


Quim

Última edición por quimfv; 07/05/2010 a las 06:08