基本的に、私は自分の販売ページで自動有効期限を設定しようとしています。私はこのSQLを持っています。
DELETE
FROM `game_sales`
WHERE `expires` <= NOW()
AND `expires` > 0
現在の時刻よりも低いexpires > 0にもかかわらず、すべての行を削除するようです。expires
どうすればこれを止めることができますか?
INTを aと単純に比較することはできませんDATETIME(これがNOW()返されます)。
あなたexpiresが実際にタイムスタンプである場合は、次のいずれかを実行できます。
タイムスタンプをDATETIMEwithに変換しFROM_UNIXTIME()ます:WHERE FROM_UNIXTIME(expires) <= NOW()
DATETIMEを整数に変換します。WHERE expires <= UNIX_TIMESTAMP(NOW())
2 番目のオプションが優先されることは間違いありません。このバージョンでは、ほとんどのクエリでインデックスを使用できるはずexpiresです(最初のバージョンでは、この列でのインデックスの使用は確実に禁止されています)。