私はmysqlテーブルにカラムhiredate
を持っています。私は時々私はhiredate
の値を 'xxxx-xx-xx'または 'zzzz-zz-zz'とし、これらの値をデータベースに保存する必要があるため、この列のデータ型をvarcharとして選択する必要がありました。order by hiredate mysqlで期待通りに動作しないDESC
私の問題は、私は
select distinct
agentname
from agentdata
where hiredate not in ('xxxx-xx-xx','zzzz-zz-zz')
order by hiredate desc
句でクエリを実行すると、それは正しくソートされたデータを返していないことです。しかし、
select distinct
agentname,
hiredate
from agentdata
where hiredate not in ('xxxx-xx-xx','zzzz-zz-zz')
order by hiredate desc
句でクエリを実行すると、正しいソートデータが返されました。
違いはselect文のhiredate
フィールドのみです。私はMysqlのこの動作の理由を知らない。
あなたが私たちに示した2つのクエリは異なっており、同じ列を返さない。それらを比較することは、オレンジのIMOにややリンゴです。 –
はい、これら2つは異なるため、結果セットを正しくソートするには、select句にカラム名を指定する必要がありますか? hiredateによってソートされたagentnameのみを必要とする場合はどうすればよいですか? str_to_date(hiredate、 '%Y-%m-%d')は私のために働いていませんでした。 – Devendra