>  기사  >  데이터 베이스  >  MySQL 5.1에서 INT를 BIT로 성공적으로 변환하는 방법은 무엇입니까?

MySQL 5.1에서 INT를 BIT로 성공적으로 변환하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-10-28 20:49:30502검색

How to Successfully Cast INT to BIT in MySQL 5.1?

MySQL 5.1에서 INT를 BIT로 캐스팅: 불가능한 작업

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.