8
votes

peigner la suppression et comme dans une déclaration SQLite

J'essaie de combiner les deux en une seule déclaration, je me contenterai même de deux déclarations séparées ..... Je sais que cela doit être possible, mais comment?

C'est ce que j'ai essayé: xxx

et: xxx

Je reçois une erreur pour la deuxième déclaration indiquant quelque chose comme, vous ne pouvez avoir qu'un seul résultat pour une déclaration comme une autre déclaration ...


1 commentaires

La première requête devrait fonctionner bien. Que se passe-t-il quand tu l'exécutions? Quelle version SQLite utilisez-vous?


5 Réponses :


4
votes

Votre première déclaration devrait fonctionner. Essayez sans le point-virgule final peut-être?

Le second n'est pas logique. Votre sous-requête n'est pas corrélée à la première et vous ne pouvez pas numériser une table modifiée. En fait, ce que j'attendrais de cette requête, si cela fonctionnerait jamais, c'est que toutes les lignes sont supprimées s'il y a une seule ligne où votre colonne correspond ...

Si vous vous demandez pourquoi les solutions avec le travail dans clause et non le existent , c'est parce que le existe est évalué pour chaque Rangée, alors que le jeu dans est évalué une fois.


3 commentaires

@gypsydev: Je suppose que vous utilisez une API? La prochaine fois que vous devriez probablement l'énoncer dans la question!


Je pense que la version de SQLite est SQLite3? Je modifie la base de données d'Objective-C dans un projet Xcode.


@gypsydev: Les instructions doivent inclure le point-virgule lorsque vous utilisez la coquille SQLite, mais généralement lorsque vous écrivez votre propre programme et utilisez une interface pour SQLite, vous n'avez pas besoin de les autres.



0
votes

Avez-vous essayé cela? XXX


0 commentaires

0
votes

Cela fonctionne pour moi:

DELETE FROM myTable WHERE id IN (SELECT id FROM myTable WHERE myValue LIKE 'findme%');


0 commentaires

5
votes

Si cette instruction renvoie des lignes

delete from mytable where myvalue like 'findme%';


0 commentaires

0
votes
DELETE FROM `table_name` WHERE `column_name` LIKE 'value%'

0 commentaires