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 ?

MySQL ne dispose-t-il pas d'un générateur de lignes robuste comme CONNECT BY d'Oracle ou generate_series() de PostgreSQL ?

Barbara Streisand
Libérer: 2025-01-15 09:42:44
original
456 Les gens l'ont consulté

Does MySQL Lack a Robust Row Generator Like Oracle's CONNECT BY or PostgreSQL's generate_series()?

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 :

  • Instruction SELECT imbriquée :
<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>
Copier après la connexion
  • Utiliser la boucle WHILE :
<code class="language-sql">DECLARE Row INT DEFAULT 0;

WHILE Row < 10 DO
  -- 在这里插入你的逻辑,例如插入到临时表中
  SET Row = Row + 1;
END WHILE;</code>
Copier après la connexion

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!

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