2011-11-15 16 views
0

のようなテキストとして、私が印刷された写真のサイズを保持している単一のMySQLのフィールドを持っている:私はPHPを使用してドロップダウンボックスでこれらをリスト必要 4×6、5×7、8×10、16x20、20x24などソート印刷された写真の寸法

が、次元順に(上記のように)私がアルファでソートした場合、私は得るでしょう: 16x20,20x24、4x6、5x7、8x10。

私は "x"の位置で何かする必要があると推測しています。それは常にポジション2またはポジション3になりますが、これをどのようにソートするかはわかりません。何かご意見は?

答えて

0

それは醜いですが、...

ORDER BY 
    CAST(SUBSTR(yourfield, 0, LOCATE('x', yourfield)) AS int), 
    CAST(SUBSTR(yourfield FROM (LOCATE('x', yourfield) + 1)) AS int) 

テストされていない、間違っているかもしれませんが、トリックを行う必要があります。これが頻繁に行われるものなら、私は別々のINTフィールドに2つのサイズを格納し、表示時間に関しては必要に応じてconcat/stringifyすることをお勧めします。

+0

テストします。あなたが言ったように2つのフィールドに格納したいのですが:....-) –

+0

これはエラーを返しました:$ query = "SELECT * FROM sizes ORDER BY CAST(SUBSTR(size、0、LOCATE( ' x、size))AS int)、CAST(SUBSTR(size FROM(LOCATE( 'x'、size)+1))AS int) "; –

関連する問題