SELECT를 사용할 때 MySQL BIT 필드 값을 볼 수 없습니다.
my_table
를 포함합니다.enabled
다음과 같이 정의된 필드:enabled BIT NOT NULL DEFAULT 0
.
이 테이블에는 다음 행이 여러 개 있습니다.enabled = b'0'
, 및 여러 행이 있습니다.enabled = b'1'
.
단, 이 두 가지 모두 다음과 같습니다.
SELECT * from my_table WHERE enabled = b'0';
또, 이하와 같이 됩니다.
SELECT * from my_table WHERE enabled = b'1';
에 아무것도 나타내지 않다enabled
열:
+----+---------+
| id | enabled |
+----+---------+
| 1 | |
| 2 | |
+----+---------+
왜 그런 것일까요?어떻게 하면 그 가치를 알 수 있을까요?enabled
필드?
$ mysql --version
mysql Ver 14.14 Distrib 5.1.63, for debian-linux-gnu (x86_64) using readline 6.1
단말기에서 볼 수 없는 이유는 비트 값이 인쇄할 수 없는 문자이기 때문입니다.
다음 값을 삽입합니다.
INSERT INTO `my_table` (`ID`, `enabled`)
VALUES (1,b'1'),(2,b'0');
그런 다음 파일링할 파일을 선택합니다.
mysql> SELECT * FROM my_table INTO OUTFILE '/tmp/my_table.txt' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';
첫 번째로,/tmp/my_table.txt
일반 텍스트 파일:
"1"," "
"2"," "
다음으로 16진수 표시:
22 31 22 2C 22 01 22 0A 22 32 2C 22 00 22 0A
이러한 값을 확인하려면 , 간단하게 할 수 있습니다.CAST
에 있는 그들SELECT
:
SELECT id, CAST(enabled AS UNSIGNED) AS enabled FROM my_table
그러면 다음과 같은 출력이 생성됩니다.
+----+---------+
| id | enabled |
+----+---------+
| 1 | 1 |
| 2 | 0 |
+----+---------+
2 rows in set (0.00 sec)
또 다른 방법은
SELECT enabled+0 from my_table
가장 간단한 방법은ORD
기능:
SELECT ORD(`enabled`) AS `enabled` FROM `my_table`
비트 값은 이진 값으로 반환됩니다.인쇄 가능한 형식으로 표시하려면 0을 추가하거나 BIN() 등의 변환 함수를 사용합니다.
https://dev.mysql.com/doc/refman/5.7/en/bit-field-literals.html
사용하다HEX()
예를 들어 다음과 같습니다.SELECT id, HEX(enabled) AS enabled FROM my_table
당신도 시도해 볼 수 있다.SELECT enabled&1 from my_table
.
비트 필드 값을 사람이 읽을 수 있는 문자열로 변환하려면 내장된 EXPORT_SET 함수를 사용합니다. 비트(1) 유형의 열을 "Y" 또는 "N" 값으로 변환하는 간단한 예는 다음과 같습니다.
EXPORT_SET(column, 'Y', 'N')
비트(8) 값을 바이트의 이진 표현으로 변환할 수도 있습니다.
EXPORT_SET(column, '1', '0', '', 8)
언급URL : https://stackoverflow.com/questions/14248554/cant-see-mysql-bit-field-value-when-using-select
'sourcecode' 카테고리의 다른 글
requests.requests에 max_retries를 설정할 수 있습니까? (0) | 2022.11.17 |
---|---|
숫자 형식을 통화 문자열로 지정하는 방법 (0) | 2022.11.17 |
event.prevent Default() 함수가 IE에서 작동하지 않음 (0) | 2022.11.17 |
순차적으로 NPM 스크립트 실행 (0) | 2022.11.17 |
자바에서는 x++와 ++x의 차이가 있나요? (0) | 2022.11.17 |