J'ai une assez grande table (plusieurs milliers d'enregistrements) et je ne veux pas m'assurer que les doublons ne peuvent pas être créés le même jour.Laquelle de ces approches SQL est optimale?
N'importe quel gourou SQL là-bas sait laquelle de ces approches est optimale et, si oui, pourriez-vous expliquer pourquoi?
{ created at is a DATETIME column }
SELECT `records`.*
FROM `records`
WHERE DATE(records.created_at) = '2012-02-02';
SELECT `records`.*
FROM `records`
WHERE records.created_at BETWEEN '2012-02-02 00:00:00' AND '2012-02-02 23:59:59';
Quel SGBD? MySQL? –
Désolé, oui MySQL – bodacious
Si vous utilisiez PostgreSQL, vous pourriez utiliser [contraintes d'exclusion] (http://www.postgresql.org/docs/9.0/static/sql-createtable.html#SQL-CREATETABLE-EXCLUDE) pour faire ceci directement. (Edit: désolé, je suis arrivé après la mise à jour). –