如何处理将tinyint中的数据移动到文本字段中

时间:2011-11-11 12:56:15

标签: mysql sql

我们有一个字段,用于在tinyint(1)列中存储数据(例如1,0),我必须将其移动到text列,并且一个简单的转换将数据存储在带有额外空格的文本字段,而不仅仅是1或0.我应该如何正确地执行此操作?

create table A (id, foo tinyint(1));
create table B (id, bar text);

我正在尝试使用导致转换问题的insert into B (id, bar) select id, foo from A;将A的所有元素复制到B中。

2 个答案:

答案 0 :(得分:0)

MySQL掌握隐式转换。由于您将数字转换为字符串类型,因此我没有发现任何可能发生的问题。因此,像UPDATE table1 SET text_column = CONCAT(' ',tinyint_column,' ')这样的东西应该有效。

答案 1 :(得分:0)

您的insert语句没有任何问题。问题在于MySQL比较字符串的方式。

即使以下查询也会匹配:

SELECT * FROM B where TRIM(bar) = '1   ';

以下工作正常(IE,不匹配):

SELECT * FROM B where bar LIKE '1 ';