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客户端中,直接执行该语句即可创建和填充表。