ホームページ >バックエンド開発 >PHPチュートリアル >php+mysql はフィールド値を比較します。同じ場合は、別のフィールド値を比較します。

php+mysql はフィールド値を比較します。同じ場合は、別のフィールド値を比較します。

WBOY
WBOYオリジナル
2016-06-23 14:11:591106ブラウズ

L l mysql php

表面構造

ID INT InTET

mydate datetime
Price INT
Flag INT 値は 1,2,3,4,5,6 です
1 2013-05-30 200 2
2 2013-05-30 300 3
3 2013-05-31 150 2
4 2013-05-31 200 3
5 2013-06-01 200 2
6 2013-06-01 300 3
結果は
ID mydate flag
1 2013-05-30 300 3
2 2013-05-31 200 3
3 2013-06-01 350 3


PHP コードの書き方?長い間 PHP コードを書いていませんでした。よろしくお願いします


ディスカッション (解決策) に返信します

select * from (select * from tt order by flag desc) t group by mydate
select id; , mydate, max(price ) as Price, flag from (select * from tbl_name order by Price desc) t group by mydate

これは単なるグループクエリではないでしょうか?

SELECT * FROM (SELECT * FROM tORDER BY flag DESC , price DESC)ttGROUP BY mydate

投稿者はまず旗のサイズを比較し、旗のサイズが同じ場合は価格のサイズを比較しましたか? 4 階の方法を試してください (実際、この問題は私も知りません。完全に 2 階に基づいています。当初は、group by xx order by xxx にしたかったのですが、group by を使用すると、最初のを直接取得することがわかりました) 1 つで、その後の order by は無効のようです。そのとき初めて、2 階でそのように書かれている理由がわかりました)

select * from tt a where not存在(select 1 from tt

where a.mydate=mydate and a.flag または

a.mydate=mydate および a.flag=flag および a.price )


http://bbs.csdn.net/topics/390476456 SQL セクションでこの投稿を受け取りましたそしてそれについて尋ねました。私のやり方で大丈夫そうなことを確認して、今日も収穫がありました(笑)。
上記のマスターは非常に熱心で、私の投稿とここでも答えてくれました。しかし、私たちがこのように使うことはほとんどありません。 WWWWA: 日付期間を指定する条件を追加するには、標準の SQL 構文

である必要があります。

to WWWWA: 指定された日付中にこの条件を追加するにはどうすればよいですか?

select * from tt a where not存在(select 1 from tt

where (a.mydate=mydate and a.flag or

a.mydate=mydate and a.flag=flag and a.price と '2013-05-30 ' と '2013-06-01 ' の間の mydate
)
と '2013-05-30 ' と '2013-06-01 ' の間の a.mydate


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。