目录
背景
我们在编写查询语句的时候,都提倡需要用到哪些字段就查哪些字段,这样有两个好处:1、可以增加程序运行效率,2、可以避免无关字段被暴露。那我们一个字段一个字段写就比较烦,有没有方法快速生成呢?答案是有,下面就是生成的语句。
生成sql语句
sql
#数据库
SET @databaseName:= 'shop_db';
#表
SET @tableName := 'buyer';
#表别名
SET @alias := 't';
#生成查询语句
SELECT
CONCAT('SELECT ',GROUP_CONCAT( CONCAT(@alias,'.'), COLUMN_NAME ORDER BY ORDINAL_POSITION ASC SEPARATOR ',' ),' FROM ',@tableName,' t') selectSql
FROM
information_schema.COLUMNS
WHERE
TABLE_SCHEMA = @databaseName
AND TABLE_NAME = @tableName;
生成的sql:
sql
SELECT
t.buyer_user_id,
t.NAME,
t.sex,
t.birthday,
t.wechat_open_id,
t.wechat_union_id,
t.wechat_name,
t.wechat_number,
t.ali_user_id,
t.phone,
t.PASSWORD,
t.head_image,
t.state,
t.if_black,
t.remark,
t.token,
t.member_level_id,
t.growth,
t.credit,
t.create_time,
t.update_time,
t.id_kind,
t.id_no,
t.user_type,
t.client_name,
t.uid_on_branch,
t.client_type,
t.realname_time,
t.hq_token,
t.platform_account,
t.login_ip,
t.login_time,
t.if_auth,
t.source,
t.third_customer_id,
t.source_customer_id
FROM
buyer t
最后把不要的字段删除就可以了,只做减法。