SELECT *
FROM `seriallog` WHERE `lastevent` IN
(SELECT GROUP_CONCAT(CONCAT(' \'', `eventid`, '\''))
FROM `permissions` WHERE `permissions`.`userpkid` = 1)
Répondre
Vous tentez probablement de comparer un int (lastevent
) à une chaîne concaténée (le résultat de votre sous-requête).
Il est difficile de dire sans plus d'information, mais probablement ce que vous voulez faire:
select *
from seriallog sl
inner join permissions p on sl.lastevent = p.eventid
where p.userpkid = 1
Pourrait écrire la première ligne comme suit: 'SELECT sl. *' – Sonny
La façon dont vous l'avez écrit, la requête interne retourne une chaîne comme "1, 2, 3"
si seulement lignes dans seriallog
avec une colonne lastevent
de "1, 2, 3"
correspondra exactement.
Vous êtes probablement intéressé par faire correspondre n'importe quelle ligne dont la valeur est dans un ensemble. C'est ce que SQL est conçu pour faire; vous n'avez pas besoin d'appliquer une ingénierie spéciale. Ce qui suit travaillerait:
SELECT *
FROM seriallog WHERE lastevent IN
(SELECT eventid FROM permissions WHERE permissions.userpkid = 1)
Cependant, il serait préférable de la place écrire:
SELECT *
FROM seriallog
WHERE EXISTS (SELECT 1 FROM permissions WHERE eventid = seriallog.lastevent AND permissions.userpkid = 1)
Cela permet à MySQL de traiter la requête plus comme une jointure, et probablement exécuter plus efficacement.
C'est le format le plus optimisé pour MySQL. En général, MySQL n'aime pas les sous-requêtes.
SELECT * DE seriallog sl joindre les autorisations p = sur sl.lastevent p.eventid OÙ permissions.userpkid = 1
- 1. EasyMock: Qu'est-ce que je fais mal?
- 2. Qu'est-ce que je fais mal? (multithreading)
- 3. Lucene.Net qu'est-ce que je fais mal?
- 4. Qu'est-ce que je fais mal ?, Lier en C++
- 5. bash piège de TERM - qu'est-ce que je fais mal?
- 6. condition de suralimentation. Qu'est-ce que je fais mal?
- 7. Problème de routage Symfony - qu'est-ce que je fais mal?
- 8. Qu'est-ce que je fais de mal? (Boucle d'assemblage simple)
- 9. Qu'est-ce que je fais de mal avec mon Regex?
- 10. XML Génération de fonctions PHP (ce que je fais mal?)
- 11. Qu'est-ce que je fais de mal avec preg_match_all?
- 12. Qu'est-ce que je fais de mal avec xpath?
- 13. SCORM 2004 Séquençage: Qu'est-ce que je fais de mal?
- 14. IIS 7.5 Qu'est-ce que je fais de mal?
- 15. Qu'est-ce que je fais de mal avec Scheme?
- 16. Problème de liaison bibliothèque. Qu'est-ce que je fais mal?
- 17. Qu'est-ce que je fais de mal dans mon code?
- 18. Service de minuterie Glassfish: qu'est-ce que je fais mal?
- 19. Filtrage dynamique, est-ce que je le fais mal?
- 20. ComboBox contraignant à enum, qu'est-ce que je fais mal?
- 21. jquery UI - exemple simple, qu'est-ce que je fais mal?
- 22. Ce que je fais mal à désassembler le code
- 23. Cutsom Entrée pour formtastic, qu'est-ce que je fais mal?
- 24. Jquery Dialog..Qu'est-ce que je fais mal?
- 25. Qt4 Designer et Ruby, qu'est-ce que je fais mal?
- 26. connexion à plusieurs fichiers, qu'est-ce que je fais mal?
- 27. Bizarre EXC_BAD_ACCESS, qu'est-ce que je fais mal?
- 28. Qu'est-ce que je fais mal dans ASP.NET
- 29. passer à droite/ce que je fais mal?
- 30. NStimer - qu'est-ce que je fais mal ici?
Qu'attendez-vous pour obtenir? Qu'est-ce que vous obtenez réellement? –