MySQL中動態生成SQL語句去掉所有字段的空格

在MySQL中動態生成SQL語句去掉所有字段的空格

在數據庫管理過程中,我們常常會遇到需要對表中字段進行清洗和整理的情況。其中,去掉字段中的空格是一項常見的操作。當表中的字段數量較少時,我們可以手動編寫 UPDATE 語句來處理。但如果表中包含大量字段,手動操作就會變得繁瑣且容易出錯。這時,借助MySQL的系統表動態生成SQL語句就顯得尤為高效。本文將詳細介紹如何在MySQL中動態生成SQL語句來去掉所有字段的空格。

準備工作

假設我們有一個名為 lcsncldljyxztjb_all 的表,其表結構如下:

CREATE TABLE `lcsncldljyxztjb_all` (`id` char(36) NOT NULL COMMENT 'ID',`sf` varchar(64) DEFAULT NULL COMMENT '省',`sj` varchar(64) DEFAULT NULL COMMENT '市',`xj` varchar(64) DEFAULT NULL COMMENT '縣',`sz` varchar(64) DEFAULT NULL COMMENT '鄉鎮',`csq` varchar(64) DEFAULT NULL COMMENT '村/社區',`cjmxz` varchar(128) DEFAULT NULL COMMENT '村(居)民小組',`bz` varchar(64) DEFAULT NULL COMMENT '備注',`mz` varchar(32) DEFAULT NULL COMMENT '民族',PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='匯總表';

我們的目標是去掉該表中所有字段的空格。

原理分析

MySQL的 INFORMATION_SCHEMA.COLUMNS 系統表存儲了數據庫中所有表的列信息。我們可以通過查詢這個系統表,獲取指定表的所有字段名以及數據類型。然后,利用 CONCAT 函數將這些字段名拼接成我們需要的 UPDATE 語句。在拼接過程中,對于 VARCHARCHAR 類型的字段,使用 REPLACE 函數將字段中的空格替換為空字符串。

動態生成SQL語句

SELECT CONCAT('UPDATE lcsncldljyxztjb_all SET ', COLUMN_NAME, ' = REPLACE(', COLUMN_NAME, ', \' \', \'\');')
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()AND TABLE_NAME = 'lcsncldljyxztjb_all'AND DATA_TYPE IN ('varchar', 'char');

上述查詢語句的詳細解釋如下:

  1. CONCAT('UPDATE lcsncldljyxztjb_all SET ', COLUMN_NAME, ' = REPLACE(', COLUMN_NAME, ', \' \', \'\');'):這部分使用

將動態生成的結果復制到查詢里面進行運行:
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/901063.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/901063.shtml
英文地址,請注明出處:http://en.pswp.cn/news/901063.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Grok 大模型深度解析】第二期:架構探秘與訓練哲學

在上一期的內容中,我們對 Grok 大模型從技術溯源的角度,了解了它從 Transformer 架構局限性出發,邁向混合架構創新的歷程,同時也梳理了從 Grok - 1 到 Grok - 3 的版本迭代所帶來的技術躍遷以及其獨特的差異化優勢。這一期,我們將深入到 Grok 大模型的架構內部,探究其精妙…

c# 使用NPOI將datatable的數據導出到excel

以下是使用 NPOI 庫 將 DataTable 數據導出到 Excel 的詳細步驟和代碼示例(支持 .xls 和 .xlsx 格式): 步驟 1:安裝 NPOI NuGet 包 Install-Package NPOI Install-Package NPOI.OOXML # 若需導出 .xlsx 格式 步驟 2:完整代碼實現 using NPOI.SS.UserModel; using NPOI.…

基于SpringBoot的求職招聘網站系統(源碼+數據庫)

473基于SpringBoot的求職招聘網站系統,本系統共分為2個角色:系統管理員、用戶,主要功能如下 【前臺功能】 用戶角色功能: 1. 注冊和登錄:注冊賬戶并登錄系統,以便訪問更多功能。 2. 個人信息管理&#x…

CSS 過渡與變形:讓交互更絲滑

在網頁設計中,動效能讓用戶交互更自然、流暢,提升使用體驗。本文將通過 CSS 的 transition(過渡)和 transform(變形)屬性,帶你入門基礎動效設計,結合案例演示如何實現顏色漸變、元素…

rqlite:一個基于SQLite構建的分布式數據庫

今天給大家介紹一個基于 SQLite 構建的輕量級分布式關系型數據庫:rqlite。 rqlite 基于 Raft 協議,結合了 SQLite 的簡潔性以及高可用分布式系統的穩健性,對開發者友好,操作極其簡便,其核心設計理念是以最低的復雜度實…

mujoco graspnet 仿真項目的復現記錄

開源項目:https://gitee.com/chaomingsanhua/manipulator_grasp 復現使用的配置:linux系統ubuntu20.04 項目配置記錄: git clone 對應的code后: 需要在graspnet-baseline文件夾中繼續拉取文件,指令記錄:…

【js面試題】new操作做了什么?

這些年也面試了一些外包同事,不知道其他面試官的想法,但就我而言,我更喜歡聽到的是口述代碼的方式: 比如下述代碼 function Animal(age) {this.age age; // 設置新對象的屬性 }const cat new Animal("8");最有效的回…

freecad內部python來源 + pip install 裝包

cmake來源: 只能find默認地址,我試過用虛擬的python地址提示缺python3config.cmake python解釋器位置: python控制臺位置: pip install 裝包: module_to_install "your pakage" import os import FreeCAD …

樹和圖論【詳細整理,簡單易懂!】(C++實現 藍橋杯速查)

樹和圖論 樹的遍歷模版 #include <iostream> #include <cstring> #include <vector> #include <queue> // 添加queue頭文件 using namespace std;const int MAXN 100; // 假設一個足夠大的數組大小 int ls[MAXN], rs[MAXN]; // 定義左右子樹數…

展訊android15源碼編譯之apk單編

首先找到你要單編的apk生成的路徑&#xff1a; sys\out_system\target\product\ussi_arm64\system_ext\app\HelloDemo\HelloDemo.apk接著打開下面這個文件&#xff1a; sys\out_system\ussi_arm64_full-userdebug-gms.system.build.log在里面找關鍵字"Running command&q…

如何關閉MacOS中鼠標滾輪滾動加速

一、背景 想要關閉滾輪的 “滾動加速”&#xff0c;即希望滾動了多少就對應滾動頁面固定行數&#xff0c;現在macOS是加速滾動的&#xff0c;即滾動相同的角度會根據你滾動滾輪的速度不同最終頁面滾動的幅度不同。這點很煩&#xff0c;常導致很難定位。 macOS本身的設置是沒有…

河北工程大學e2e平臺,python

題目&#xff0c;選擇題包100分&#xff01; 題目&#xff0c;選擇題包100分&#xff01; 題目&#xff0c;選擇題包100分&#xff01; 聯系&#x1f6f0;&#xff1a;18039589633

【藍橋杯】貪心算法

1. 區間調度 1.1. 題目 給定個區間,每個區間由開始時間start和結束時間end表示。請選擇最多的互不重疊的區間,返回可以選擇的區間的最大數量。 輸入格式: 第一行包含一個整數n,表示區間的數量 接下來n行,每行包含兩個整數,分別表示區間的開始時間和結束時間 輸出格式:…

一維差分數組

2.一維差分 - 藍橋云課 問題描述 給定一個長度為 n 的序列 a。 再給定 m 組操作&#xff0c;每次操作給定 3 個正整數 l, r, d&#xff0c;表示對 a_{l} 到 a_{r} 中的所有數增加 d。 最終輸出操作結束后的序列 a。 ??Update??: 由于評測機過快&#xff0c;n, m 于 20…

二分答案----

二分答案 - 題目詳情 - HydroOJ 問題描述 給定一個由n個數構成的序列a&#xff0c;你可以進行k次操作&#xff0c;每次操作可以選擇一個數字&#xff0c;將其1&#xff0c;問k次操作以后&#xff0c;希望序列里面的最小值最大。問這個值是多少。 輸入格式 第一行輸入兩個正…

旋轉位置編碼

旋轉位置編碼&#xff08;Rotary Position Embedding&#xff0c;RoPE&#xff09;: 一種能夠將相對位置信息依賴集成到 self-attention 中并提升 transformer 架構性能的位置編碼方式。 和相對位置編碼相比&#xff0c;RoPE 具有更好的外推性&#xff0c;目前是大模型相對位…

.NET-EFCore基礎知識

.NET EF Core&#xff08;Entity Framework Core&#xff09;是微軟開發的一款開源的對象關系映射&#xff08;ORM&#xff09;框架&#xff0c;用于在.NET 應用程序中與數據庫進行交互。以下是一些.NET EF Core 的基礎知識&#xff1a; 1. 什么是 EF Core EF Core 是.NET 平…

利用 RNN 預測股票價格:從數據處理到可視化實戰

在金融領域&#xff0c;預測股票價格走勢一直是眾多投資者和研究者關注的焦點。今天&#xff0c;我們將利用深度學習中的循環神經網絡&#xff08;RNN&#xff09;來構建一個簡單的股票價格預測模型&#xff0c;并詳細介紹從數據加載、預處理、模型搭建、訓練到最終結果可視化的…

LangGraph 架構詳解

核心架構組件 LangGraph 的架構建立在一個靈活的基于圖的系統上&#xff0c;使開發者能夠定義和執行復雜的工作流。以下是主要架構組件&#xff1a; 1. 狀態管理系統 LangGraph 的核心是其強大的狀態管理系統&#xff0c;它允許應用程序在整個執行過程中維護一致的狀態&…

Python 深度學習實戰 第1章 什么是深度學習代碼示例

第1章&#xff1a;什么是深度學習 內容概要 第1章介紹了深度學習的背景、發展歷史及其在人工智能&#xff08;AI&#xff09;和機器學習&#xff08;ML&#xff09;中的地位。本章探討了深度學習的定義、其與其他機器學習方法的關系&#xff0c;以及深度學習在近年來取得的成…