MySql:比较两个数字的字符串?

时间:2012-10-05 15:16:42

标签: mysql comparison

我的表中有一列,它包含诸如100012345之类的值。该列是varchar。现在我想将其与其中的类似值进行比较:

... where myColumn > '100012345'
例如,

。我怎么能这样做?

谢谢!

4 个答案:

答案 0 :(得分:13)

select * from your_table
where cast(your_column as signed) = 100012345

答案 1 :(得分:3)

您是否尝试过这样做,如下所示:

... where myColumn > 100012345

应该可以工作!,mysql会在数字操作的上下文中自动将字符串转换为数字。以同样的方式,如果在字符串上下文中使用它,则将数字转换为字符串。请参阅type conversion docs

中的示例

要在数字上下文中将字符串强制转换为数字值,除了使用字符串值之外,通常不必执行任何操作,就像它是一个数字一样:

mysql> SELECT 1+'1';
       -> 2

如果在算术运算中使用字符串,则在表达式求值期间将其转换为浮点数。

如果在字符串上下文中使用数字,则该数字将自动转换为字符串:

mysql> SELECT CONCAT('hello you ',2);
        -> 'hello you 2'

答案 2 :(得分:2)

你不必将字符串转换为整数来进行比较,mysql会自动进行比较。

http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html

答案 3 :(得分:1)

您可以cast the value为整数:

CAST(myColumn AS INTEGER)