2017-02-28 8 views
1

私はmysqlのクエリで多くの問題に直面しています動作しません。 私は結果を表示していますが、正しい順序ではないので、注文のためのクエリを書いています。私のテーブルには、私は、キーワードなぜSQLクエリが正しく

mysql> select salary from salary order by salary desc; 
+--------+ 
| salary | 
+--------+ 
| 9000 | 
| 5000 | 
| 45000 | 
| 34000 | 
| 22000 | 
| 21000 | 
| 2000 | 
| 2000 | 
| 2000 | 
| 15000 | 
+--------+ 

mysql> select salary from salary order by salary; 
+--------+ 
| salary | 
+--------+ 
| 15000 | 
| 2000 | 
| 2000 | 
| 2000 | 
| 21000 | 
| 22000 | 
| 34000 | 
| 45000 | 
| 5000 | 
| 9000 | 
+--------+ 

これらの結果は、ASCとDESCによって適切に.whyために動作していないと表示されていないことにより、順序ですべての給与を取得したい

+----+--------+--------+ 
| ID | NAME | SALARY | 
+----+--------+--------+ 
| 1 | hari | 2000 | 
| 2 | haria | 2000 | 
| 3 | ramesh | 2000 | 
| 4 | rajesh | 5000 | 
| 5 | john | 21000 | 
| 6 | naag | 45000 | 
| 7 | sheena | 22000 | 
| 8 | anu | 34000 | 
| 9 | aman | 15000 | 
| 10 | salil | 9000 | 
+----+--------+--------+ 

です。 ありがとうございます。

+0

Salaryフィールドの種類がありますか?テキスト、int、...? – tilz0R

答えて

1

多くの場合、SALARYフィールドのフィールドは、intではなく、varcharのフィールドです。 給与のタイプがvarcharの場合、表示される注文が表示されます。 給料をintにした場合は、ご希望の注文があります。あなたがtext(またはvarchar)の入力フィールドタイプを持っているためだ

+0

ありがとうございます。仕事は非常に感謝しています。あなたは私の時間を節約します。 – user7635555

+0

@ user7635555喜んで助けました – apomene

0

。順序は最初の文字で、有効であることがわかります。

設定salaryフィールドタイプはintに、あなたが望むように動作します:

ALTER TABLE salary MODIFY salary INT NOT NULL;