自动更改mysql中的类型

时间:2014-01-29 15:49:06

标签: mysql

表测试

  CREATE TABLE IF NOT EXISTS `test` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
    `sd` int(11) NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

如果我使用此查询进行搜索

SELECT * FROM test WHERE id="1A"

找到1行,id = 1但1A不等于1。 我应该怎么做才能找到正确的查询。 抱歉我的英文。

2 个答案:

答案 0 :(得分:0)

试试这个

 SELECT * FROM test WHERE id LIKE '%1A%'

已经尝试过你的查询看起来返回1 :)。但您应该搜索整数值或使用LIKE statment

答案 1 :(得分:0)

指定

 WHERE id = '1A'

您告诉MySQL将int(您的id列的类型)与字符串进行比较。事实上,你隐含地告诉MySQL这样做:

WHERE id = CAST('1A' AS INT)

CAST('101A' AS INT)的值是整数101. CAST('A101' AS INT)的值是整数零。这种隐式类型转换可能会很麻烦,因为它会无声地发生。你需要小心这一点。

要搜索整数,最好的方法是:

WHERE id = 1