Maison > base de données > tutoriel mysql > Comment résoudre l'erreur MySQL 1235 : « LIMIT & IN/ALL/ANY/SOME subquery » non pris en charge ?

Comment résoudre l'erreur MySQL 1235 : « LIMIT & IN/ALL/ANY/SOME subquery » non pris en charge ?

Susan Sarandon
Libérer: 2024-12-13 22:33:10
original
864 Les gens l'ont consulté

How to Resolve MySQL Error 1235:

Erreur : "Cette version de MySQL ne prend pas encore en charge la sous-requête 'LIMIT & IN/ALL/ANY/SOME'"

Quand En exécutant une requête PHP qui utilise une sous-requête avec une clause LIMIT et un opérateur IN, vous pouvez rencontrer une erreur telle que ceci :

Error during SQL execution: SELECT VID, thumb FROM video WHERE VID IN ( SELECT VID FROM video WHERE title LIKE "%funny%" ORDER BY viewtime DESC LIMIT 5) ORDER BY RAND() LIMIT 1

MySQL Error: This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'

MySQL Errno: 1235
Copier après la connexion

Cette erreur se produit car certaines versions de MySQL ne prennent pas en charge les sous-requêtes avec une clause LIMIT utilisée conjointement avec les opérateurs IN, ALL, ANY ou SOME.

Solution

Pour résoudre ce problème, pensez à utiliser un JOIN au lieu d'un sous-requête :

SELECT v.VID, v.thumb
FROM video AS v
INNER JOIN
     (SELECT VID
     FROM video
     WHERE title LIKE "%'.$Channel['name'].'%"
     ORDER BY viewtime DESC
     LIMIT 5) as v2
  ON v.VID = v2.VID
ORDER BY RAND()
LIMIT 1
Copier après la connexion

Cette requête modifiée utilise un INNER JOIN pour combiner les résultats de deux instructions SELECT. La première instruction SELECT récupère le VID des vidéos dont les titres contiennent le nom de chaîne spécifié, en les classant par durée de visionnage par ordre décroissant et en limitant les résultats aux 5 premiers. La deuxième instruction SELECT utilise ensuite cette liste VID pour filtrer l'ensemble de résultats principal, récupérer des colonnes spécifiques de la table vidéo.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal