2012-04-14 8 views
0

私は誰かが私を助けてくれることを望んでいます。MYSQLのデータ注文の問題

私はMYSQLで次のデータセットがあります。私は、顧客の列を必要とするが、私はそれが例えば上記と同じ順序である必要はあり

SELECT * FROM account; 

pk | customer 
1 | 1 
2 | 0 
3 | 1 

を:

customer 
1 
0 
1 

しかし、私がしようとしたときに次のコマンドを実行すると、次のように表示されます。

SELECT customer FROM account 

customer 
0 
1 
1 

私はすでに次のw無運:

SET @rownum=0; 
SELECT @rownum:[email protected]+1 as rank, customer FROM account 

rank | customer 
1 | 0 
2 | 1 
3 | 1 

更新:私は何か重要なものを追加するのを忘れました。プライマリキーの順序付けに頼ることはできません。主な理由は、主キーがvarcharで、状況によっては整数ではない可能性があるからです。

データがデータベースに挿入された順序が必要です。 varchar値を返す同じクエリを実行すると、正しい順序になります。

アイデア?

回答:SQL query no order by question

+0

あなたはPKが整数とvarchar型の両方のことができないのPK列 –

+0

に従って...それが含むvarchar型かもしれあなたの結果を注文したいですvarchar形式の整数。 – Arth

+0

主キーはchar、varchar、integerなどの指定されたデータ型でなければならず、別のものにキャスト/変換することができます。私は、同じ順序で出現したvarchar値のリストを返す類似したクエリを実行することを意味しました。 –

答えて

4
SELECT customer FROM account ORDER BY pk ASC 
+0

こんにちはエヴァン - 申し訳ありませんが、私は何か重要なものを追加するのを忘れました。私は主キーによる注文に頼ることはできません。主な理由は、プライマリキーがvarcharであり、場合によっては整数ではないためです。 –

+0

ちょうど私を打つ、あなたはASCが必要だとは思わない! – Arth

+0

@LewisWheelerなぜ同じ注文をするように頼んだのですか? PKではなく、何によって? – poncha

1
SELECT * FROM account 
ORDER BY pk; 
0

あなたは、その列を選択せず​​に順序を定義することができます。だから、この

SELECT `customer` from `account` ORDER BY `pk` ASC 
0

使用を使用して、このSQL:

SELECT customer FROM account order by PK 
+0

私はORDER BYを大文字にし、小文字はpkを大文字にします。 – Arth