web-dev-qa-db-fra.com

mysqldump avec la clause --where ne fonctionne pas

 mysqldump -t -u root -p  mytestdb mytable --where=datetime LIKE '2014-09%'

C'est ce que je fais et ça revient:

mysqldump: Couldn't find table: "LIKE"

J'essaie de renvoyer toutes les lignes où la colonne datetime est like 2014-09 signifiant "toutes les lignes de septembre".

19
nodejsj

Vous devrez peut-être utiliser des guillemets:

mysqldump -t -u root -p  mytestdb mytable --where="datetime LIKE '2014-09%'"
39
Leonardo Herrera

La sélection de dates à l'aide de LIKE n'est pas une bonne idée. J'ai vu cette méthode dans un projet. Cela entraîne une charge énorme du SGBD et un fonctionnement lent du système car aucun index de cette colonne de table n'est utilisé.

Si vous devez sélectionner une plage de dates, utilisez entre:

where datetime between '2014-09-01' and '2014-09-30 23:59:59'
1