MySQL是一個常用的關系型數據庫管理系統。其中,字符串轉表數據是一項常見的操作。下面我們來詳細了解一下這個操作。
CREATE TABLE example ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(30) NOT NULL, age INT, address VARCHAR(50), PRIMARY KEY (id) ); INSERT INTO example (name, age, address) VALUES ('Bob', 25, 'New York'), ('Alice', 30, 'Los Angeles'), ('John', 20, 'Chicago'), ('Susan', 35, 'Houston');
以上是一個示例表example,我們可以通過以下方式將其轉化為字符串:
SELECT CONCAT( 'CREATE TABLE example (', 'id INT NOT NULL AUTO_INCREMENT, ', 'name VARCHAR(30) NOT NULL, ', 'age INT, ', 'address VARCHAR(50), ', 'PRIMARY KEY (id)', ');', GROUP_CONCAT( CONCAT( 'INSERT INTO example (name, age, address) VALUES (', QUOTE(name), ', ', age, ', ', QUOTE(address), ');' ) SEPARATOR '') ) AS sql_query FROM example;
以上語句使用CONCAT()函數將表定義和表數據語句連接在一起,并使用GROUP_CONCAT()函數將多行表數據連接為一個字符串。
執行以上語句后,我們會得到以下結果:
CREATE TABLE example ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(30) NOT NULL, age INT, address VARCHAR(50), PRIMARY KEY (id) ); INSERT INTO example (name, age, address) VALUES ('Bob', 25, 'New York'),('Alice', 30, 'Los Angeles'),('John', 20, 'Chicago'),('Susan', 35, 'Houston');
這是一個包含完整表定義和表數據的字符串。我們可以將其復制到命令行或其他MySQL客戶端中,直接執行該語句即可創建和填充表。