2013-04-24 43 views
0

我遇到了以下問題:將數據庫中的文本字段轉換爲匹配規則

一位客戶向我們提供了一個假期優惠的大型數據庫。報價也是定價的。以下結構被賦予

offers 

領域

roomprice1 

不幸的是,roomprice1字段被聲明爲 「VARCHAR」,因此不適合用於比較/包含「ORDER BY排序例如roomprice1 ASC/DESC。

是否有方法(PHP/SQL)來轉換字段,以便以正確的方式進行排序?

感謝您的任何意見

+0

,如果它是一個'varchar'或不要緊'詮釋'你將被允許'按'排序......向我們顯示你的查詢。假定價格不是愚蠢的文本格式,例如 – jcho360 2013-04-24 16:49:45

+1

。 '10美元',你可以'改變表'並將roomprice1轉換爲一個十進制字段,然後進行直接數字排序。 @ jcho360。是的,這很重要。 '100.00'會排序爲小於'99.99',因爲1 <9 – 2013-04-24 16:53:54

+0

不,他不能按順序排列,如果他使用varchar – Saturnix 2013-04-24 16:54:05

回答

0

如果你可以查詢並自行編輯分貝,那麼這樣做:

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

否則,如果你想使用PHP,準備像查詢這與PDO或mysqli的:

SELECT `roomprice1` FROM `offers` 

,並通過與PHP的結果迭代,使用intval()從字符串轉換爲整數。對於每次迭代,把新的值在另一個表INSERT或將其保存在一個PHP數組,然後可以sort()

相關問題