Maison >base de données >tutoriel mysql >Comment contourner la restriction LIMIT de sous-requête de MySQL avec l'opérateur IN ?
Incompatibilité MySQL avec les limites des sous-requêtes
Le message d'erreur "Cette version de MySQL ne prend pas encore en charge 'LIMIT & IN/ALL/ANY /SOME subquery'" indique que la version MySQL utilisée ne prend pas en charge l'utilisation d'une clause LIMIT dans une sous-requête lors de l'utilisation de certains opérateurs comme IN.
Solution
Une solution de contournement à cette limitation consiste à utiliser une sous-requête JOIN au lieu d'une sous-requête IN. Le code suivant illustre cette approche :
$Last_Video = $db->fetch_all(' 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 ');
Dans ce code :
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!