表测试
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。 我应该怎么做才能找到正确的查询。 抱歉我的英文。
答案 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