Maison >base de données >tutoriel mysql >MySQL ne dispose-t-il pas d'un générateur de lignes robuste comme CONNECT BY d'Oracle ou generate_series() de PostgreSQL ?
Générateur de lignes MySQL : alternatives limitées
Contrairement à d'autres systèmes de bases de données, MySQL n'a pas la capacité de générer un nombre arbitraire de lignes pour une opération JOIN comme dans la syntaxe Oracle.
Cette limitation crée des défis lors de la recherche d'un générateur de lignes polyvalent comparable à la clause CONNECT BY d'Oracle ou à la fonction generate_series() de PostgreSQL. Cependant, il existe quelques alternatives pour simuler la génération de lignes dans MySQL :
<code class="language-sql">WITH RECURSIVE Hier(Row) AS ( SELECT 1 UNION ALL SELECT Row + 1 FROM Hier WHERE Row < 10 ) SELECT * FROM Hier;</code>
<code class="language-sql">DECLARE Row INT DEFAULT 0; WHILE Row < 10 DO -- 在这里插入你的逻辑,例如插入到临时表中 SET Row = Row + 1; END WHILE;</code>
Ces méthodes simulent la génération de lignes en générant de manière itérative un nombre spécifié de lignes et en les stockant dans une table temporaire. Cependant, ils nécessitent des tables temporaires et des structures de requêtes supplémentaires, ce qui les rend moins efficaces que les générateurs de lignes dédiés.
Par conséquent, il est important de comprendre les limites de MySQL en ce qui concerne la génération de lignes et d'explorer d'autres moyens d'obtenir des fonctionnalités similaires.
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!