2010-09-26 4 views
0

J'ai créé une table avec ce schéma à l'aide sqlite3:Très simple requête SQL sur les champs varchar avec sqlite

CREATE TABLE monitored_files (file_id INTEGER PRIMARY KEY,file_name VARCHAR(32767),original_relative_dir_path VARCHAR(32767),backupped_relative_dir_path VARCHAR(32767),directory_id INTEGER); 

maintenant, je voudrais obtenir tous les dossiers où original_relative_dir_path est exactement égal, sans « » 's. Ce que je fait est la suivante:

select * from monitored_files where original_relative_dir_path='.'; 

Le résultat est pas de documents, même si dans le tableau que je viens de ce disque:

1|'P9040479.JPG'|'.'|'.'|1 

Je lis sur le web et je ne vois pas d'erreur dans ma syntaxe. .. J'ai également essayé d'utiliser LIKE '.', Mais toujours pas de résultats. Je ne suis pas un expert de SQL alors peut-être que vous pouvez voir quelque chose de mal? Merci!

+1

Etes-vous sûr de ne pas stocker les guillemets simples autour des valeurs dans la base de données? – GSerg

+0

Je suppose que vous avez raison! J'ai créé la requête d'insertion en utilisant Qt, et il semble qu'elle insère les guillemets simples là où elle ne devrait pas ... Ensuite, le problème est plus lié à Qt qu'à sqlite. Merci! –

Répondre

0

Je ne vois aucun problème avec la déclaration.
J'ai créé la table que vous avez décrite.
A fait un INSERT avec les mêmes valeurs que vous avez fournies.
Et fait la requête, et également interrogé sans une clause where.
Aucun problème rencontré, donc je soupçonne que lorsque vous exécutez votre sélection, vous ne pouvez pas être connecté à la base de données correcte.