我在数据类型为tiny int的表中有一列。它的值为1和0.我尝试了一个选择查询
SELECT * from table_name where filed_name = 'Y';
这导致我所有记录为零的记录。我不明白查询执行是如何发生的。请帮我理解这个
答案 0 :(得分:0)
TINYINT
不会存储'Y'
或'N'
等字符串值,而是存储整数0
或1
。如果您希望所有数据行都具有值' Y'你必须按1(整数)例子过滤:
SELECT * FROM myTable WHERE myTinyColumn = 1
答案 1 :(得分:0)
当string
转换为number
时,它将变为值0
。
这就是为什么你得到价值0
SELECT * from table_name where filed_name = 'Y';
这里' Y'自动转换为0
改为使用
SELECT * from table_name where filed_name = 1;