You can use CAST or CONVERT to see the data as a numeric type.

If the table is very big and you're going to be querying it intensely, you might want to create a separate column to store the numeric data.

mysql> select cast('34' AS decimal);
+-----------------------+
| cast('34' AS decimal) |
+-----------------------+
| 34.00                 |
+-----------------------+
1 row in set (0.00 sec)

mysql> select cast('hi' AS decimal);
+-----------------------+
| cast('hi' AS decimal) |
+-----------------------+
| 0.00                  |
+-----------------------+
1 row in set, 1 warning (0.00 sec)


Douglas Sims
[EMAIL PROTECTED]



On Sep 27, 2006, at 10:24 PM, [EMAIL PROTECTED] wrote:

I am looking for any suggestions to this problem. I have a table with a
varchar field.  This field can hold textual or numeric data, but it is
stored in a varchar field so the database sees it all as text.

I need to be able to search and sort this field as if it were numeric.
For example, here is some sample data

2.5
4
2
6
7
6.2
3.4
6

I need to be able query the table to get the rows within a certain range,
for example, between 4 and 7:

select * from table where field1>=4 and field1<=7

This doesn't work because the column is not a numeric data type. Is there
anyway to dynamically cast the data to a numeric format so I can use
MySQL's numeric sorting?

I can't change the field's data type because it also needs to be able to
hold textual data.  Thank you for your help.

--
Steve Musumeche
CIO, Internet Retail Connection

--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]


--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to