Maison  >  Article  >  base de données  >  Comment résoudre le problème du retour des champs de texte long dans MySql

Comment résoudre le problème du retour des champs de texte long dans MySql

WBOY
WBOYavant
2023-05-31 22:49:231553parcourir

Retour du champ de texte long dans MySql

Des champs comme le texte long sont utilisés dans le développement récent. La longueur maximale de ce champ dans MySQL est de 4G

Comme le montre la figure ci-dessous

Comment résoudre le problème du retour des champs de texte long dans MySql

Comment résoudre le problème du retour des champs de texte long dans MySql

Un problème rencontré lors du développement est. Par exemple, il y a une table d'articles, puis notre page doit afficher les données au front-end sous la forme d'une liste (en affichant uniquement quelques champs, tels que l'auteur, le titre, etc., par exemple en les plaçant dans un tableau pour afficher plusieurs enregistrements), mais le tableau Toutes les informations de l'enregistrement sont trouvées, puis lorsque l'utilisateur clique sur un enregistrement, il passe à la page de détails et affiche des informations détaillées.

Cela posera des problèmes lorsque la quantité de données est relativement importante ou lorsque le contenu du texte est relativement volumineux.

À mesure que la quantité de données dans la page augmente, le temps de chargement de la page deviendra plus long jusqu'à ce que la liste des données soit enfin affichée. Cela affectera sérieusement l'effet d'utilisation.

Solution

Bien sûr, il s'agit d'un problème avec l'instruction SQL. Lorsque vous interrogez la liste entière comme ci-dessus, vous pouvez interroger d'autres champs au lieu du champ de texte long. Ensuite, lorsque l'utilisateur clique sur une certaine donnée, il accède à la base de données pour vérifier cette donnée en fonction de l'identifiant de la donnée. À ce moment, il peut consulter le texte long.

En parlant de cela, permettez-moi de parler d'une autre situation, c'est-à-dire que parfois, lorsque les données trouvées dans la base de données sont encapsulées dans une classe d'entité, la valeur d'un certain champ ne peut pas être obtenue, ce qui est nul. L'instruction de requête SQL doit être vérifiée pour garantir que le champ dans le résultat renvoyé a été mappé et encapsulé dans le champ de classe correspondant.

Généralement, cela est dû au fait que le champ n'est pas encapsulé dans l'ensemble de résultats.

Plage de champ de texte dans Mysql

text : stocke les données non Unicode de longueur variable, avec une longueur maximale de 2 ^ 31-1 caractères.

La colonne de texte ne peut pas avoir de valeur par défaut. Il n'y a pas de conversion de casse pendant le processus de stockage ou de récupération. Si vous spécifiez la longueur plus tard, aucune erreur ne sera signalée, mais cette longueur ne fonctionnera pas, ce qui signifie que lorsque vous insérerez des données. , il dépasse votre La longueur spécifiée peut toujours être insérée normalement.

Dans MySQL, la longueur maximale d'une colonne de type TEXTE est de 65 535 caractères (soit 2 puissance 16 moins 1).

Si vous estimez que la longueur du texte n'est pas suffisante, vous pouvez choisir

  • MEDIUMTEXTLa longueur maximale est de 16 777 215. MEDIUMTEXT最大长度为16,777,215。

  • LONGTEXT最大长度为4,294,967,295

  • Text

LONGTEXTLa longueur maximale est de 4 294 967 295

Le texte est principalement utilisé pour stocker du texte non binaire, tel que des messages de forum, des questions ou des questions et problèmes. connu de Baidu Answers et autres.

Ce qui doit être clarifié, c'est la différence entre le texte et le blob char varchar.

mysql Modifier la longueur du champ de texte_mysql longueur du champ de texte ? Le problème de la longueur insuffisante du champ de texte dans la base de données MySQL...

le type est une chaîne de longueur variable, jusqu'à 65535 caractères

Vous pouvez changer le type de champ en MEDIUMTEXT (jusqu'à 16777215 caractères) ou LONGTEXT (jusqu'à 4294967295 ; caractères) caractères).

MySQL prend en charge 4 types de champs TEXTE (TINYTEXT, TEXT, MEDIUMTEXT et LONGTEXT) et cet article examine la longueur maximale de chacun de ces types de champs.

Les tables MyISAM dans MySQL ont une taille maximale d'un ligne de 65 535 octets, donc toutes les données d'une ligne doivent respecter cette limite. Cependant, les types TEXT sont stockés en dehors de la table elle-même et ne contribuent que pour 9 à 12 octets à cette limite (pour plus d'informations à ce sujet, reportez-vous à MySQL. Manuel - Chapitre Exigences de stockage des données). Les types de données TEXT sont également capables de stocker beaucoup plus de données que les types de texte VARCHAR et CHAR. Les types TEXT sont donc ce que vous devez utiliser lors du stockage d'une page Web ou d'un contenu similaire dans une base de données. qui peut être stocké dans chaque type de données est le suivant: Tinytext256 octets

text65,535 octets ~ 64KB

MediumText 16,777,215 octets ~ 16MB

longtext4,294,967,295 octets ~ 4gb

in dans la plupart des circonstances, le type de texte est probablement suffisant, mais mais si vous codez un système de gestion de contenu, il est probablement préférable d'utiliser le type MEDIUMTEXT pour les pages plus longues afin de garantir qu'il n'y a aucun problème avec les limites de taille des données. L'explication de utf8mb4 dans le manuel officiel de MySQL est

Comment résoudre le problème du retour des champs de texte long dans MySql

L'utf8 par défaut des versions de bases de données existantes est utf8mb3. Faites attention à la "même longueur" qui y est mentionnée.

Donc, sous utf8mb4, l'anglais occupe 1 octet, les caractères chinois généraux occupent 3 octets et les emoji occupent 4 octets.

Concernant l'erreur d'insertion de code dans la table emoji, veuillez vérifier si l'encodage de la table et l'encodage de la connexion à la base de données sont tous deux utf8mb4.

Conclusion : la base de données et les tables sont toutes deux définies sur utf8mb4.

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer