を売却しました。私はsort_it ASC BY ORDER上のソートclausuleを設定すると、私は SOLDとON sort_in列 OF 、そしての値とアイテムを取得します。 しかし、私はシーケンスが必要ですON、OFF、売りますです。は、OFF、I 3つのデータベースに一列になり得る値は以下を有する
何とかしてください。私は...データをデータベースに保存する方法を編集することが要求されることを意味するので、私はこれを最後の瞬間にやります。
を売却しました。私はsort_it ASC BY ORDER上のソートclausuleを設定すると、私は SOLDとON sort_in列 OF 、そしての値とアイテムを取得します。 しかし、私はシーケンスが必要ですON、OFF、売りますです。は、OFF、I 3つのデータベースに一列になり得る値は以下を有する
何とかしてください。私は...データをデータベースに保存する方法を編集することが要求されることを意味するので、私はこれを最後の瞬間にやります。
SELECT t.*, IF(sort_it='ON',1,IF(sort_it='OFF',2,3)) as new_sort FROM Table AS t ORDER by new_sort ASC
MySQLのマニュアルに関するコメントから、別の解決策:
あなたはCASE
ステートメントを使用することができます
http://dev.mysql.com/doc/refman/5.0/en/sorting-rows.html
select * from tablename order by priority='High' DESC, priority='Medium' DESC, priority='Low" DESC;
基本的な値からカスタム注文シーケンスを生成するには、li KEこの:
ORDER BY
CASE sort_it
WHEN 'ON' then 1
WHEN 'OFF' then 2
WHEN 'SOLD' then 3
END
サンプルデモ:文字列を使用してhttp://sqlize.com/MGz6lLb0Qk
は一般的に悪い考えです。数値型を使用する方がよいでしょう。次に、ON = 1、OFF = 2、SOLD = 3とし、並べ替えます。
を使用するか、タイプ:ENUMを使用してください(バックグラウンドで)数値ですが、http://dev.mysql.com/doc/refman/5.0/en/enumでも文字列ラベルを扱うことができます。 html – netmano
文字列ではなく、列挙型です。 –