I have a column in my table, it holds values such as 100012345. The column is varchar. Now I want to compare this to similiar values in a where:
... where myColumn > '100012345'
for example. How could I do that?
Thanks!
I have a column in my table, it holds values such as 100012345. The column is varchar. Now I want to compare this to similiar values in a where:
... where myColumn > '100012345'
for example. How could I do that?
Thanks!
select * from your_table
where cast(your_column as signed) = 100012345
Have you tried to do it normally, like this:
... where myColumn > 100012345
That should work!, mysql automatically casts a string to number when it's in the context of a number operation. In the same way it casts a number to string if it's used in a string context. See the examples in the type conversion docs:
To cast a string to a numeric value in numeric context, you normally do not have to do anything other than to use the string value as though it were a number:
mysql> SELECT 1+'1';
-> 2
If you use a string in an arithmetic operation, it is converted to a floating-point number during expression evaluation.
If you use a number in string context, the number automatically is converted to a string:
mysql> SELECT CONCAT('hello you ',2);
-> 'hello you 2'
You can cast the value to an integer:
CAST(myColumn AS INTEGER)
You don't have to cast strings into integers to compare, mysql does it automatically.
http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html
If your column field is of type varchar then you have to Cast the columns you want to compare else mysql will treat a value like 20 to be greater than 100000.You can do that by using the inbuilt cast function
select * from your_table
where cast(your_column as signed) > 100012345
You can also do
select * from your_table
where 'your_column+0' > '100012345+0'
Mysql will add your string number to zero and then cast them as an integer
If your column field is of type INT then you can do the normal comparism
select * from your_table
where your_column > 100012345
N/B it is always appropriate to use the correct column types esp. when you know the value the column is expecting