MySQL: int 필드의 값을 전환하는 간단한 방법
어떻게 하는지는 알지만, 더블 셀렉트 같은 걸로 너무 복잡하게 만들 것 같아요.
이를 수행하려면 어떻게 해야 합니까(pseudo-sql의 예)
UPDATE some_table SET an_int_value = (an_int_value==1 ? 0 : 1);
다른 기능에 의한 int 값이어야 합니다만, 어떻게 하면 간단하게 할 수 있을까요?
UPDATE table SET field = 1 - field
UPDATE some_table SET an_int_value = IF(an_int_value=1, 0, 1);
http://dev.mysql.com/doc/refman/5.1/en/control-flow-functions.html#function_if
UPDATE some_table SET an_int_value = IF(an_int_value=1, 0, 1)
이 경우 XOR 타입의 연산을 사용할 수 있습니다.
UPDATE some_table SET an_int_value = an_int_value XOR 1
이것은 an_int_value가 항상 1 또는0이라고 가정하고 있습니다.
모든 경험자의 답변을 볼 수 있고, 저도 그들의 답변에 업데이트 되었습니다.
이건 어때...이렇게 하면...
UPDATE tablename SET fieldname = not fieldname
이것이 실현 가능한 해결책이 아닐 경우 어떤 단체라도 제안을 할 수 있다.실행 속도나 다른...뭐랄까...사실...컨셉...
다른 옵션:
UPDATE some_table SET an_int_value = ABS(an_int_value - 1);
TINYINT(0 및 1)를 사용하고 있는 경우는, 간단하게 XOR(https://dev.mysql.com/doc/refman/8.0/en/logical-operators.html#operator_xor))를 실행합니다.
UPDATE
`some_table`
SET
`an_int_value` = `an_int_value` ^ 1
테스트:
SELECT 0 ^ 1; /*는 1 */을 반환합니다.
SELECT 1 ^ 1; /*는 0 */을 반환합니다.
ENUM(0,1) 필드의 경우 다음을 사용할 수 있습니다.
UPDATE 테이블 SET int_value=BINARY(int_value=1)
ENUM(0,1)의 경우 some_table SET an_int_value = IF(an_int_value='1', '0', '1');
언급URL : https://stackoverflow.com/questions/603835/mysql-simple-way-to-toggle-a-value-of-an-int-field
'programing' 카테고리의 다른 글
개체의 첫 번째 인덱스 가져오기 (0) | 2023.01.13 |
---|---|
Internet Explorer에 대해 'console'이 정의되지 않은 오류입니다. (0) | 2023.01.13 |
개체 배열을 여러 필드로 정렬하려면 어떻게 해야 합니까? (0) | 2023.01.13 |
MySQL Workbench에서 Mariadb(Centos 7)에 액세스할 수 없음 (0) | 2023.01.13 |
명령어가 완료될 때까지 기다리지 않고 shell_exec을 사용할 수 있는 방법이 있습니까? (0) | 2023.01.13 |