我遇到了以下問題:將數據庫中的文本字段轉換爲匹配規則
一位客戶向我們提供了一個假期優惠的大型數據庫。報價也是定價的。以下結構被賦予
表
offers
領域
roomprice1
不幸的是,roomprice1字段被聲明爲 「VARCHAR」,因此不適合用於比較/包含「ORDER BY排序例如roomprice1 ASC/DESC。
是否有方法(PHP/SQL)來轉換字段,以便以正確的方式進行排序?
感謝您的任何意見
我遇到了以下問題:將數據庫中的文本字段轉換爲匹配規則
一位客戶向我們提供了一個假期優惠的大型數據庫。報價也是定價的。以下結構被賦予
表
offers
領域
roomprice1
不幸的是,roomprice1字段被聲明爲 「VARCHAR」,因此不適合用於比較/包含「ORDER BY排序例如roomprice1 ASC/DESC。
是否有方法(PHP/SQL)來轉換字段,以便以正確的方式進行排序?
感謝您的任何意見
您可以使用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
,如果它是一個'varchar'或不要緊'詮釋'你將被允許'按'排序......向我們顯示你的查詢。假定價格不是愚蠢的文本格式,例如 – jcho360 2013-04-24 16:49:45
。 '10美元',你可以'改變表'並將roomprice1轉換爲一個十進制字段,然後進行直接數字排序。 @ jcho360。是的,這很重要。 '100.00'會排序爲小於'99.99',因爲1 <9 – 2013-04-24 16:53:54
不,他不能按順序排列,如果他使用varchar – Saturnix 2013-04-24 16:54:05