SQL Server에서 MySQL 5.1로 전환할 때 비트가 있는 테이블을 생성하려고 하면 문제가 발생합니다. select 문을 사용하는 열입니다. 다음 예에서 볼 수 있듯이 정수 열을 비트로 캐스팅하는 직관적인 접근 방식은 실패합니다.
CREATE TABLE myNewTable AS SELECT cast(myIntThatIsZeroOrOne as bit) AS myBit FROM myOldtable
MySQL은 비트로 캐스팅하려는 시도에 대해 거부감을 표시하며 다음과 같은 질문을 표시합니다. 0과 1만 포함된 정수 열을 비트로 처리하시겠습니까?
안타깝게도 직접적인 해결책은 없습니다. MySQL 5.1의 CAST 및 CONVERT 함수는 BIT 및 관련 정수 유형을 제외하고 특정 데이터 유형에만 캐스팅을 지원합니다.
제한에도 불구하고 사용자 정의 생성이 가능합니다. 캐스팅을 수행하는 함수입니다. 방법은 다음과 같습니다.
DELIMITER $$ CREATE FUNCTION cast_to_bit (N INT) RETURNS bit(1) BEGIN RETURN N; END $$
cast_to_bit 기능의 기능을 확인하기 위해 뷰를 생성할 수 있습니다.
CREATE VIEW view_bit AS SELECT cast_to_bit(0), cast_to_bit(1), cast_to_bit(FALSE), cast_to_bit(TRUE), cast_to_bit(b'0'), cast_to_bit(b'1'), cast_to_bit(2=3), cast_to_bit(2=2)
DESCRIBE로 뷰를 검사하면 표시됩니다. 모든 값이 비트(1)로 변환되었습니다.
위 내용은 MySQL 5.1에서 INT를 BIT로 성공적으로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!