2
,它基本上都值了數進行比較,並返回其OutputValue。mysql的where子句不工作我有mysql的where子句中,我有一個表,有3個字段,OutputValue,FromValue和ToValue麻煩的所有值
這是我的表的SQL
CREATE TABLE IF NOT EXISTS `value_scale` (
`OutputValue` varchar(50) NOT NULL,
`FromValue` float NOT NULL,
`ToValue` float NOT NULL,
PRIMARY KEY (`OutputValue`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO `value_scale` (`OutputValue`, `FromValue`, `ToValue`) VALUES
('L', 0.11, 0.3),
('L1', 0.31, 0.5),
('L2', 0.51, 0.7),
('L3', 0.71, 1.99),
('L4', 2, 2.99),
('L5', 3, 9999),
('P', -0.3, -0.11),
('P1', -0.5, -0.31),
('P2', -0.7, -0.51),
('P3', -1.99, -0.71),
('P4', -2.99, -2),
('P5', -9999, -3),
('S', -0.1, 0.1);
在目標值不等於在FromValue或ToValue值,它顯示的結果,否則沒有輸出顯示
我的查詢是
SELECT * from value_scale where -0.31 between FromValue and ToValue
它適用於-0.32和-0.3,但不適用於-0.31
即使我搜索在ToValue列值,不輸出顯示,forexample有一排(P1,-0.5,-0.31)
SELECT * FROM value_scale WHERE tovalue = -0.31
甚至這個查詢顯示0行
轉換爲十進制'(10,2)'並在此[sqlfiddle](http://sqlfiddle.com/#!9/091dd/1)解決此問題。 – FrankerZ
偉大:)感謝您的幫助,現在我知道原因,並選擇正確的數據類型使用的重要性,謝謝。將接受答案在5分鐘內 –
好的,謝謝你的提示,我查了一下,也沒有顯示任何行(如你所說),但我總是有2位小數值與這些值進行比較 –