Mysql常用语句

‌1、删除数据库里重复的值,只保留一个

DELETE s1 FROM seller_dr s1
INNER JOIN seller_dr s2
WHERE s1.uid = s2.uid AND s1.id > s2.id;

#红色 代表mysql的数据表名称,#蓝色是字段的名称;

‌2、查询mysql过滤重复后的数量

SELECT uid FROM `cms_expert` WHERE 1 group by uid

#红色 是数据表名称   #绿色 是查询字段的名字

‌3、高效删掉mysql重复的数据

DELETE FROM `seller_dr` WHERE id not in  (select id from (SELECT max(id) as id FROM `seller_dr` group by uid) _t)

#红色 是数据表名称   #绿色 是查询字段的名字

‌4、从另外一个表 复制1万条数据到新的表

INSERT INTO `t_celebrity123` (SELECT * FROM `t_celebrity` WHERE `platform_id` != 'seller.us.tiktokglobalshop' AND `fans` > 1000 AND `contact_email` != '' LIMIT 10000);

#绿色:新表的名称  蓝色:原表的搜索条件 紫色:取出多少个

‌5、从另外的表复制所有数据到新表指定字段 多个字段;

INSERT INTO dr_history_data_total (uid, unique_id)
SELECT uid, unique_id FROM dr_history_data;

#绿色:新表的名称  蓝色:原表的搜索条件

‌6、测试用例  在新表插入指定字段, 原表里搜索指定条件;

INSERT INTO t_celebrity2024_06 (unique_id, nick_name,uid,avatar_url,contact_email,fans,follows,likes,videos,sign,region,celebrity_language)
SELECT unique_id, nickname,uid,avatarThumb,email,followerCount,followingCount,heartCount,videoCount,signature,region,language FROM `new_dr_0617` WHERE `email` != '' AND `followerCount` < 1000

#测试例子
INSERT INTO `t_celebrity_7月_D5000_JF-1`(unique_id,nickname,uid,avatarThumb,email,whatsapp,followerCount,followingCount,heartCount,videoCount,diggCount,signature,region,language)
SELECT unique_id,nickname,uid,avatarThumb,email,whatsapp,followerCount,followingCount,heartCount,videoCount,diggCount,signature,region,language FROM `t_celebrity_7月_D5000_JF`

‌7、A,B2个表查询是否重复数据,重复的数据进行标记

UPDATE
    dr_JFSJ_ALL,`t_celebrity_add_JF_2024-06`
SET
    `t_celebrity_add_JF_2024-06`.up_status = 5
WHERE
    `t_celebrity_add_JF_2024-06`.uid = dr_JFSJ_ALL.uid

dr_JFSJ_ALL: 查询数据的表       t_celebrity_add_JF_2024-06:需要更新标记的表

‌8、设置数据表字段内容格式

update A set uid=trim(uid)

清除UID字段内容里的空格

‌9、取出数据并设置状态,防止多人取同一条数据

SET @update_id := 0;
UPDATE `#表名称#` SET statue = 1, id = (SELECT @update_id := id) WHERE `statue` IS NULL limit 1; 
SELECT uid FROM `#表名称#`  WHERE id = @update_id;

#表名称# 当前数据库里的表名称  
#SET statue = 1 设置哪个字段 并设置成什么值  
#`statue` IS NULL limit 1 查询条件 取出多少条数据
#uid  搜索内容显示哪些字段 目前是显示uid,如果显示其他字段 改为 uid,id,name

‌10、数据表A,B2个表,查询数据B表里的UID是否在A表里存在,如果存在在B表的状态字段修改值

update  t_celebrity_8月_DJF_1_Email,dr_JFSJ_ALL set `t_celebrity_8月_DJF_1_Email`.statue=9  where t_celebrity_8月_DJF_1_Email.uid=dr_JFSJ_ALL.uid

#t_celebrity_8月_DJF_1_Email,dr_JFSJ_ALL                  #2个数据表的表名称
#set `t_celebrity_8月_DJF_1_Email`.statue=9              #设置哪个表的字段值等于多少
#t_celebrity_8月_DJF_1_Email.uid=dr_JFSJ_ALL.uid    #设置的条件

‌权限表设计,连表查询

#创建权限表
CREATE TABLE pandas.seller_permission (
    perm_id INT AUTO_INCREMENT PRIMARY KEY,
    user_id INT NOT NULL COMMENT '关联user表uid',
    seller_id INT NOT NULL COMMENT '关联seller表id',
    perm_type ENUM('view','manage') NOT NULL DEFAULT 'view' COMMENT '权限类型',
    create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
    update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES user(uid),
    FOREIGN KEY (seller_id) REFERENCES seller(id),
    UNIQUE KEY (user_id, seller_id)
) COMMENT='卖家账号权限表';

‌表创建好以后,根据user表和seller表的数据插入权限数据:

--执行sql语句,根据权限表提取seller数据
SELECT s.* FROM seller s JOIN seller_permission sp ON s.id = sp.seller_id JOIN user u ON u.uid = sp.user_id WHERE u.Account = 'aa@qq.com' AND sp.perm_type = 'view'

-- 查询有管理权限的用户及其对应的seller
SELECT u.name AS user_name, s.shop_name, s.Login_Account
FROM user u
JOIN seller_permission sp ON u.uid = sp.user_id
JOIN seller s ON sp.seller_id = s.id
WHERE sp.perm_type = 'manage';

-- 查询用户所在公司的所有seller权限(假设需要扩展)
ALTER TABLE seller ADD COLUMN company VARCHAR(50) COMMENT '与user表Company字段关联';
SELECT s.* 
FROM seller s
JOIN user u ON s.company = u.Company
WHERE u.uid = 指定用户ID;

-- 验证用户是否有某seller的查看权限
SELECT EXISTS(
    SELECT 1 
    FROM seller_permission
    WHERE user_id = 123 
      AND seller_id = 456 
      AND perm_type = 'view'
) AS has_permission;


如果您喜欢本站,点击这儿不花一分钱捐赠本站

这些信息可能会帮助到你:下载帮助 | 报毒说明 | 进站必看

修改版本安卓软件,加群提示为修改者自留,非本站信息,注意鉴别

(0)

发表回复

评论问题之前, 点击我,能帮你解决大部分问题

评论列表(10条)

  • wl****r2025年03月04日 23:16
    Firefox 116.0 Browser Windows 10 x64 Edition Win

    功能强大,操作便捷,SQL语句清晰易懂! 非常实用!

  • xt****x2025年03月04日 23:01
    Firefox 116.0 Browser Windows 10 x64 Edition Win

    功能强大,SQL语句清晰易懂,极大提高了我的数据库管理效率!

  • yq****u2025年03月04日 21:47
    Firefox 116.0 Browser Windows 10 x64 Edition Win

    数据库操作便捷高效,语句清晰易懂,节省不少时间!

  • qn****w2025年03月04日 20:45
    Firefox 116.0 Browser Windows 10 x64 Edition Win

    数据库操作便捷高效,语句清晰易懂,非常实用!

  • om****t2025年03月04日 20:17
    Firefox 116.0 Browser Windows 10 x64 Edition Win

    功能强大,操作简便,SQL语句清晰易懂! 很实用!

  • vo****l2025年03月04日 00:06
    Firefox 116.0 Browser Windows 10 x64 Edition Win

    数据库操作简洁高效,语句清晰易懂,满足我的大部分需求。

  • hv****g2025年03月03日 23:50
    Firefox 116.0 Browser Windows 10 x64 Edition Win

    MySQL操作很方便,语句清晰易懂,高效解决问题!

  • ay****k2025年03月03日 22:35
    Firefox 116.0 Browser Windows 10 x64 Edition Win

    操作简单,效率很高,轻松完成数据库操作!

  • ey****i2025年03月03日 21:50
    Firefox 116.0 Browser Windows 10 x64 Edition Win

    功能强大,SQL操作便捷高效!尤其喜欢批量数据处理的功能。

  • jn****z2025年03月03日 21:48
    Firefox 116.0 Browser Windows 10 x64 Edition Win

    高效实用,语句清晰易懂,极大提升了我的数据库操作效率!

  • ew****d2025年03月03日 21:42
    Firefox 116.0 Browser Windows 10 x64 Edition Win

    MySQL操作很方便,语句清晰易懂,代码示例也很实用!

  • pl****m2025年03月03日 21:00
    Firefox 116.0 Browser Windows 10 x64 Edition Win

    SQL操作便捷高效,尤其删除重复数据和数据复制功能实用!

  • km****w2025年03月03日 18:29
    Firefox 116.0 Browser Windows 10 x64 Edition Win

    功能强大,SQL语句清晰易懂,非常实用!

  • an****s2025年03月03日 17:36
    Firefox 116.0 Browser Windows 10 x64 Edition Win

    功能强大,操作便捷,高效解决数据库问题!

  • zg****f2025年03月03日 17:12
    Firefox 116.0 Browser Windows 10 x64 Edition Win

    功能强大,语句清晰易懂,极大提高了数据库操作效率!

请用支付宝扫一扫完成支付