将数据库中的文本字段转换为匹配规则

时间:2013-04-24 16:46:47

标签: php mysql

我遇到了以下问题:

客户向我们提供了一个大型假日优惠数据库。优惠也是定价。给出以下结构

offers

字段

roomprice1

不幸的是,roomprice1字段被声明为" VARCHAR"因此不适合与" ORDER BY roomprice1 ASC / DESC进行比较/排序。

是否有方法(PHP / SQL)转换字段以便以正确的方式进行排序?

感谢您的任何建议

2 个答案:

答案 0 :(得分:0)

如果您可以自己查询和编辑数据库,请执行以下操作:

ALTER TABLE  `offers` CHANGE  `offers`  `roomprice1` INT( 255 )

否则,如果您想使用PHP,请使用PDO或mysqli准备这样的查询:

SELECT `roomprice1` FROM `offers`

并使用php迭代结果,使用intval()将字符串转换为整数。对于每次迭代,将新值放在另一个带有INSERT的表中,或者将其保存在PHP数组中,然后可以sort()

答案 1 :(得分:0)

如果您不想更改表格,可以使用Cast功能重新排序。

 ...ORDER BY CAST('roomprice1' AS DECIMAL(10,2));

而不仅仅是正常的'ORDER BY'

如果您想了解更多有关投射的信息,请参阅以下链接: http://dev.mysql.com/doc/refman/4.1/en/cast-functions.html#function_cast