在 MySQL 5.1 中将 Int 转换为位
从 SQL Server 转换到 MySQL 5.1 时,尝试将仅包含以下内容的 INT 列转换为使用 CAST 函数将 0 和 1 添加到 BIT 列失败。 MySQL 不支持将 INT 转换为 BIT。
解决问题
由于直接转换不可行,另一种解决方案是创建一个自定义函数将 INT 转换为BIT:
<code class="sql">DELIMITER $$ CREATE FUNCTION cast_to_bit (N INT) RETURNS bit(1) BEGIN RETURN N; END $$</code>
示例用法
要演示该功能,请创建一个将各种值转换为 BIT 的视图:
<code class="sql">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)</code>
检查使用 DESCRIBE 的视图架构将显示所有列现在都是 BIT:
<code class="sql">DESCRIBE view_bit;</code>
以上是如何在 MySQL 5.1 中将 INT 转换为 BIT?的详细内容。更多信息请关注PHP中文网其他相关文章!