Comment est-ce que je recréerais la requête suivante dans Rails parler afin qu'elle renvoie la quantité de lignes traitées?Requête SQL Mysql to Rails
self.connection.execute('DELETE FROM `cd_artist`
LEFT JOIN `cdpedia` ON cd_artist.id = cdpedia.`artistId`
WHERE artistId IS NULL;')
Je me rends compte que je devrais utiliser quelque chose comme Artist.find_by_sql
pour elle de retourner quelque chose, mais cela me donne une erreur.
Peut-être y a-t-il une façon plus élégante de faire cela?
Je veux éviter les Rails moyen de la première recherche dans la base de données, puis récupérer les cartes d'identité et de supprimer les entrées avec Object.destroy
ou même Object.delete(id)
depuis un appel SQL est beaucoup plus rapide (si vous avez les index droit), mais je Je suis curieux de savoir quelle est la "bonne" façon de le faire.
Votre requête semble être erronée. Avez-vous déjà testé directement sur votre base de données? – basgys