3

フィールドがあるとしましょう: id | コンテンツ | updateTime | 作成時間

挿入が完了すると、 updateTime と creationTime の両方が現在の時刻で埋められます。更新時に updateTime フィールドのみが変更されます。「2012-06-28」に作成されたすべてのデータを検索する必要がある場合は、次のように使用します。

SELECT id, content FROM tbl WHERE creationTime LIKE '2012-06-28%'`

しかし、作成されたデータを除いて更新されたすべてのデータを取得するには、次のようなものを使用する必要があります。

SELECT id, content FROM tbl WHERE creationTime LIKE '2012-06-28%' AND creationTime != updateTime

これは明らかにうまくいきません。PHP 内の 2 つの「時間」列の値を比較することで、更新されたすべてのデータを見つけることができましたが、クエリ内でそれを実行したいと思います。

UPD:ええと、SQLがフィールドの値を特定の変数、数値と比較するだけでなく、あるフィールドの値を別のフィールドと比較できることをまったく知らなかったことがわかりました。

4

3 に答える 3

3

あなたのクエリは正しいです(mySQL¹で)、なぜそうでないと思うのかわかりません

¹<>は、等しくないことを表す SQL 演算子です。ただし、一部の実装 (PostgreSQL や MySQL など) も受け入れ!=ます。<>別のデータベースでコードを使用する場合は、問題を回避するために常に使用することをお勧めします。

于 2012-06-28T09:49:30.857 に答える