Sé cómo hacerlo, pero creo que voy a complicarse demasiado con doble selecciona y así sucesivamente.

¿Cómo se puede hacer esto (por ejemplo en pseudo-sql)

UPDATE some_table SET an_int_value = (an_int_value==1 ? 0 : 1);

Debe ser un valor int, debido a algunas otras funcionalidades, pero ¿cómo hacerlo de una forma sencilla?

InformationsquelleAutor fmsf | 2009-03-02

9 Comentarios

  1. 103
    UPDATE table SET field = 1 - field
    • Muy simple matemático de la lógica, que es a la vez maravilloso y elegante al mismo tiempo. Tan impresionante, me quito el sombrero para usted!
    • La diferencia entre este y el uso de IF es la forma en que se comporta con NULL. El uso de IF los valores null se establece en 1, el uso de esta estancia NULL. Realmente depende de lo que quieras.
  2. 9

    En este caso, se podría utilizar un XOR tipo de operación:

    UPDATE some_table SET an_int_value = an_int_value XOR 1

    Esto es, asumiendo que an_int_value siempre será 1 o 0 sin embargo.

  3. 4

    Puedo ver las respuestas de todas las personas con experiencia y yo también he actualizado con sus respuestas.

    lo que acerca de esto…
    hago esta manera…

    UPDATE tablename SET fieldname = not fieldname

    cualquier organismo puede dar sugerencias, por favor, si esto no va a ser una solución viable. con respecto a la velocidad de ejecución o cualquier otro… qué decir… hecho… concepto… .

    • Esto funciona en MySQL, pero sólo por la coincidencia y su no estándar de la implementación de los booleanos como el entero 0/1. Esto probablemente no funcionará en la mayoría de las otras implementaciones de SQL estándar (aunque no lo he probado).
  4. 0

    Para ENUM(0,1) campos que se pueden utilizar…

    UPDATE tabla SET int_value=BINARIO(int_value=1)

  5. 0

    Para ENUM(0,1)
    ACTUALIZACIÓN some_table CONJUNTO an_int_value = SI(an_int_value=’1′, ‘0’, ‘1’);

    • Por favor podría elaborar más su respuesta añadiendo un poco más de descripción acerca de la solución que usted proporciona?

Dejar respuesta

Please enter your comment!
Please enter your name here