MySQL 데이터베이스에 BOOL 값을 삽입하는 방법
값을 에 삽입하려고 합니다.BOOL
다음 스크립트를 사용하여 MySQL(v 5.5.20)의 데이터 유형을 지정할 수 있습니다.
CREATE DATABASE DBTest;
USE DBTest;
DROP TABLE IF EXISTS first;
CREATE TABLE first (id INT AUTO_INCREMENT NOT NULL PRIMARY KEY , name VARCHAR(30) ,sale BOOL,);
INSERT INTO first VALUES ("", "G22","TRUE");
INSERT INTO first VALUES ("", "G23","FALSE");
그런데 그.INSERT
문은 삽입만 합니다.0
(0) 두 가지 모두에 대한 부울 열로TRUE
그리고.FALSE
옵션!왜 이런 일이 일어나는지 저에게 알려주실 수 있나요?
TRUE
그리고.FALSE
는 키워드이며 문자열로 따옴표로 묶어서는 안 됩니다.
INSERT INTO first VALUES (NULL, 'G22', TRUE);
INSERT INTO first VALUES (NULL, 'G23', FALSE);
문자열로 인용함으로써 MySQL은 해당 문자열을 정수로 캐스팅합니다(불리언은 실제로는 1바이트에 불과하므로).INT
MySQL)에서 숫자가 아닌 문자열에 대해 0으로 변환됩니다.따라서, 당신은.0
표의 두 값 모두에 대해 계산합니다.
0으로 캐스팅된 숫자가 아닌 문자열:
mysql> SELECT CAST('TRUE' AS SIGNED), CAST('FALSE' AS SIGNED), CAST('12345' AS SIGNED);
+------------------------+-------------------------+-------------------------+
| CAST('TRUE' AS SIGNED) | CAST('FALSE' AS SIGNED) | CAST('12345' AS SIGNED) |
+------------------------+-------------------------+-------------------------+
| 0 | 0 | 12345 |
+------------------------+-------------------------+-------------------------+
하지만 키워드는 해당 내용을 반환합니다.INT
표현:
mysql> SELECT TRUE, FALSE;
+------+-------+
| TRUE | FALSE |
+------+-------+
| 1 | 0 |
+------+-------+
또한 표준 SQL 문자열 인클로저와 마찬가지로 이중 따옴표를 단일 따옴표로 대체했습니다.마침내, 나는 당신의 빈 문자열을 교체했습니다.id
와 함께NULL
빈 문자열은 경고를 발생시킬 수 있습니다.
언급URL : https://stackoverflow.com/questions/13259654/how-to-insert-bool-value-to-mysql-database
'programing' 카테고리의 다른 글
기존 가상 환경을 정상적으로 업그레이드할 수 있습니까? (0) | 2023.09.02 |
---|---|
python MySQLdb를 사용하여 *.sql 파일 실행 (0) | 2023.09.02 |
Logback-test.xml 구성에서 하나의 로그 파일이 아닌 두 개의 로그 파일을 생성하시겠습니까? (0) | 2023.09.02 |
Spring Boot을 사용하여 MongoDB 쿼리 기록 (0) | 2023.09.02 |
모듈의 Python 명명 규칙 (0) | 2023.08.28 |