我想從我的數據庫中刪除行數超過4 year.this是我query.Is tat correect?在這裏「$ year」是從我的數據庫表中的年份。如何刪除比某年更早的行?
"DELETE FROM undergraudate WHERE YEAR(GETDATE())-'$year'>4"
我想從我的數據庫中刪除行數超過4 year.this是我query.Is tat correect?在這裏「$ year」是從我的數據庫表中的年份。如何刪除比某年更早的行?
"DELETE FROM undergraudate WHERE YEAR(GETDATE())-'$year'>4"
如果今天的日期是2016年1月9日,你的表的日期是10日2012年十一月那麼好,你可以不喜歡你的查詢將行不通:
DELETE FROM undergraudate
WHERE year > UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 1461 DAY))
這裏「年」是什麼? –
我認爲'year'是數據庫中字段的名稱。這個查詢很好,因爲您可以在該字段上創建索引,並且它將起作用。在從第二個答案查詢它不會。 – Evgeny
是的,它看起來不錯但很可能你的數據庫中有日期時間或日期字段,所以如下所示。再次,GETDATE()
是一個SQL Server功能。我覺得你的意思CURDATE()
或NOW()
DELETE FROM undergraudate
WHERE YEAR(CURDATE()) - YEAR(your-date-field) > 4
你是什麼意思'$ year'是從你的數據庫表中的年份。它看起來像一個變量給我。另外,MySQL不支持'GETDATE()'。你需要解決你的問題。提供樣本數據,所需結果,並正確標記問題。 –