イベントモジュールがインストールされたDrupalインストールがあります。終了日が過ぎてライブにならないすべてのイベントを検索する短いプラグインを作成しました。これは基本的に次のようなSQLクエリです。
UPDATE node LEFT JOIN content_field_dates on node.nid = content_field_dates.nid SET node.status = 0 WHERE node.type = 'event' AND field_dates_value2 < NOW() AND node.status = 1
ただし、一部のイベントには複数の日付が含まれる場合があり、このクエリでは、1つの日付が経過し、一部の日付がまだ先であっても、ステータスが0に設定されます。私は次のように日付SELECT
のみをクエリするクエリを実行することができました:MAX()
SELECT * FROM node LEFT JOIN content_field_dates on node.nid = content_field_dates.nid WHERE node.type = 'event' AND field_dates_value2 < NOW() GROUP BY field_dates_value2 HAVING field_dates_value2 = MAX(field_dates_value2)
UPDATE
しかし、私は使用できないため、これがクエリにどのように変換されるかわかりませんGROUP BY
。何か案は?