sql技巧总结

1,删除数据库中重复的用户名

delete a from user as a,
(select min(id) id,name from user group by name ) as b
where a.name  = b.name and a.id <> b.id;

group by 取出最小的id,然后从表中删除重复数据;

group by name [ having count(id) >1 ]

时间: 2024-10-08 10:29:43

sql技巧总结的相关文章

mysql基础操作、sql技巧和sql的常见优化

一.常见操作 1.复制表结构create table t2 like t1 复制表数据insert into t2 select * from t1 2.mysql索引 alter table用来创建普通索引.unique索引或primary key索引 alter table t add index index_name(column_list) alter table t add unique(column_list) alter table t add primary key(column

SQL技巧

数据查询    且不说你是否正在从事编程方面的工作或者不打算学习SQL,可事实上几乎每一位开发者最终都会遭遇它.你多半还用不着负责创建和维持某个数据库,但你怎么着也该知道以下的一些有关的SQL知识.我为那些感兴趣的开发者或者能从数据库操作中得益的读者撰写了这篇关于基本SQL语法的概述性文章.本文主要讨论基本的数据操作查询,后续的文章还会继续讨论如何修改数据库自身以及更高级的查询概念.SQL数据库是怎么回事?SQL(结构化查询语言)就是负责与ANSI维护的数据库交互的标准.最新的版本是SQL-99

或许你不知道的10条SQL技巧

非常棒的一个微信公众号 转载地址:https://mp.weixin.qq.com/s/dGcgts4NNTmVQNRT-j2MZw 一.一些常见的SQL实践 (1)负向条件查询不能使用索引 select * from order where status!=0 and stauts!=1 not in/not exists都不是好习惯 可以优化为in查询: select * from order where status in(2,3) (2)前导模糊查询不能使用索引 select * fro

性能测试常用sql技巧_Oracle

做了一段时间的性能测试,把自己在性能测试过程中,使用到的Oracle中用到的sql语句整理一番,做个备忘: (1)多个字段以某种格式拼接 "||"字符串拼接符; 示例:将"id"及"code"用逗号拼接: select t.id||','||t.code from OTable t; 备注:MySQL中使用 concat()函数,select concat(t.id,',',t.code) from MTable t; (2)以某一个字段为维度统

每个程序员都需要了解的一个SQL技巧

对于数据过滤而言CHECK约束已经算是相当不错了.然而它仍存在一些缺陷,比如说它们是应用到表上面的,但有的时候你可能希望指定一条约束,而它只在特定条件下才生效. 使用SQL标准的WITH CHECK OPTION子句就能完成这点,至少Oracle和SQL Server都实现了这个功能.下面是实现方式: CREATE TABLE books ( id NUMBER(10) NOT NULL, title VARCHAR2(100 CHAR) NOT NULL, price NUMBER(10, 2

SQL技巧之分组求和

这是CSDN问答里面有人提出的一道问题,题目如下. 表格如下: 得出结果如下: 求精简的SQL语句. SQL查询语句: with a as( select rank() over (partition by 商店 order by 商店,sum(价钱) desc) as rowid, 商店,sum(价钱) as 价钱和,备注 from 产品 group by 备注,商店), b as( select 商店,价钱和,备注 from a where rowid = 1), c as( select

[MySQL] 常用SQL技巧--18.5

1.正则表达式使用 MySQl利用REGEXP命令,提供正则表达式功能. 例子:select 'abcdef' REGEXP '^a'; select 'efg' REGEXP '[^XYZ]'; 2. 用RAND()函数提取随机行 使用RAND()函数从表中随机抽取记录行,这对一些抽样分析统计非常有用. 例如:select * from category order by rand() limit 5; 3. 利用group by的with rollup子句做统计报表 在SQL语句中,使用gr

PL/SQL Developer自动补全SQL技巧

s = SELECT t.* FROM t w = WHERE b = BETWEEN AND l = LIKE '%%' o = ORDER BY insw = IN (SELECT a FROM a WHERE a ) sw = SELECT t.* FROM t WHERE t sc* = SELECT COUNT(*) FROM t st = SELECT t.* ,t.ROWID FROM t f = FOR UPDATE u = UPDATE t SET t. WHERE t 1.将

【sql技巧】mysql修改时,动态指定要修改的字段 update `table` set (case when ....) = 1 where id = xx

如果你点进了这篇帖子,那么你一定遇到了跟我一样的问题.别看题目的set case when...,我一开始也是第一反应是用case when但是发现并不好使. 问题呢,说得高大上一点:动态指定要修改的字段. 其实小白在这里并没找到我以为的解决方法[笑哭],但是好歹问题是解决了. 这里是原帖的地址: http://stackoverflow.com/questions/4830191/t-sql-using-a-case-in-an-update-statement-to-update-certa

你可能不知道的10条SQL技巧,涨知识了!

这几天在写索引,想到一些有意思的TIPS,希望大家有收获. 一.一些常见的SQL实践 (1)负向条件查询不能使用索引 select * from order where status!=0 and stauts!=1 not in/not exists都不是好习惯 可以优化为in查询: select * from order where status in(2,3) (2)前导模糊查询不能使用索引 select * from order where desc like '%XX' 而非前导模糊查