Maison >base de données >tutoriel mysql >Comment sélectionner toutes les colonnes sauf une dans MySQL ?

Comment sélectionner toutes les colonnes sauf une dans MySQL ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-30 02:42:09476parcourir

How to Select All Columns Except One in MySQL?

Récupération de toutes les colonnes sauf une d'une table MySQL

Question :

Dans un MySQL base de données, comment pouvez-vous récupérer toutes les colonnes sauf une spécifique dans un domaine particulier table?

Réponse :

Bien que cela puisse sembler une tâche simple, MySQL ne fournit pas de méthode intégrée pour exclure des colonnes spécifiques dans une instruction SELECT. Cependant, en utilisant une combinaison de SQL dynamique et de procédures stockées, il est possible d'obtenir cette fonctionnalité.

Solution :

Suivez ces étapes pour récupérer toutes les colonnes sauf une dans une table MySQL :

  1. Créer une table stockée Procédure :
DELIMITER //

CREATE PROCEDURE get_all_columns_except(
    IN table_name VARCHAR(255),
    IN database_name VARCHAR(255),
    IN excluded_column VARCHAR(255)
)
BEGIN

    -- Dynamically build the SELECT statement
    SET @sql = CONCAT('SELECT ', (SELECT REPLACE(GROUP_CONCAT(COLUMN_NAME), excluded_column, '') FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = table_name AND TABLE_SCHEMA = database_name), ' FROM ', table_name);

    -- Prepare the statement for execution
    PREPARE stmt1 FROM @sql;

    -- Execute the statement
    EXECUTE stmt1;

END //

DELIMITER ;
  1. Appelez la procédure stockée :

Une fois la procédure stockée créée, vous pouvez appeler avec la commande suivante :

CALL get_all_columns_except('table_name', 'database_name', 'excluded_column_name');
  1. Paramètre Substitution :

Remplacez « table_name », « database_name » et « exclu_column_name » par les valeurs réelles.

Exemple :

Pour récupérer toutes les colonnes sauf la colonne "nom" de la table "employés" du base de données "company_db", vous appelleriez la procédure stockée comme suit :

CALL get_all_columns_except('employees', 'company_db', 'last_name');

Cette approche vous permet de sélectionner toutes les colonnes d'une table, en omettant automatiquement une colonne spécifiée, même si la table contient un grand nombre de colonnes.

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:
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