我的表中有一个列,它包含诸如 100012345 之类的值。该列是 varchar。现在我想将其与其中的类似值进行比较:
... where myColumn > '100012345'
例如。我怎么能那样做?
谢谢!
我的表中有一个列,它包含诸如 100012345 之类的值。该列是 varchar。现在我想将其与其中的类似值进行比较:
... where myColumn > '100012345'
例如。我怎么能那样做?
谢谢!
select * from your_table
where cast(your_column as signed) = 100012345
您是否尝试过正常执行此操作,例如:
... where myColumn > 100012345
那应该工作!, mysql 在数字操作的上下文中自动将字符串转换为数字。以同样的方式,如果它在字符串上下文中使用,它会将数字转换为字符串。请参阅类型转换文档中的示例:
要将字符串转换为数字上下文中的数值,您通常无需执行任何操作,只需将字符串值当作数字使用:
mysql> SELECT 1+'1';
-> 2
如果在算术运算中使用字符串,则会在表达式求值期间将其转换为浮点数。
如果您在字符串上下文中使用数字,则该数字会自动转换为字符串:
mysql> SELECT CONCAT('hello you ',2);
-> 'hello you 2'
您可以将值转换为整数:
CAST(myColumn AS INTEGER)
您不必将字符串转换为整数进行比较,mysql 会自动进行。
http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html