0

データベースから昇順でデータを取得しようとしています。

私のクエリは

select pid 
from `patient_list` t1, patient_info t2 
where pid > '2000' and t2.id=t1.id 
order by pid asc 
limit 10

しかし、データは次のようになります

pid
2221
2223
2224
2227
**223**
2238
2239
2242
2245
2247
**225**

これを並べ替える方法は?

4

4 に答える 4

6

データは英数字でソートされます。数値ソートを強制するには、データを数値にキャストする必要があります。たとえば、pid * 1

select pid 
from `patient_list` t1, patient_info t2 
where pid > '2000' 
and t2.id=t1.id 
order by pid * 1 asc 
limit 1

あなたpidは文字列型なので、それをに変更することを検討する必要がありintます。

于 2013-10-04T06:25:44.750 に答える