mysql怎麼查欄位跟他的值在哪幾個表中出現過

2021-05-31 21:47:38 字數 2783 閱讀 3548

1樓:

利用mysql中的 的聚合函式 count(*) 可以實現這個功能,例如需要查詢data表中name出現次數最多的記錄,可以先按照group by name分組,用count算出分組裡的條數,再按照count排序:

select name,count(*) from data group by name order by count(*) desc limit 1

不加limit限制將返回按照name重複次數排列的資料標籤:count(*), mysql這個你要用儲存過程了吧,吧三次查詢的結果匯聚到一張表中,然後再對一張表求和

怎麼檢視資料庫表中某個欄位的值有哪些重複記錄

2樓:刀塔的激情歲月

下面以 sqlserver資料庫為例進行說明。

select * from tablea where b in (select  b from  tablea group  by  b having  count(b) > 1)

這樣就列舉出了b欄位所有的重複資料,可以根據對應的行號,取得位於第幾行。

如果要查詢a欄位或者c欄位重複資料,可以相應的把上面的b欄位替換成a欄位或c欄位即可。

舉例:1、建立表student

2、查詢語句: select * from student where name in (select  name from  student group  by  name   having  count(name ) > 1)

這樣就查出名字重複列,以及行號id。

擴充套件資料:

1. sqlserver其他相關的一些查詢:

(1)刪除表中多餘的重複記錄,重複記錄是根據單個欄位(peopleid)來判斷,只留有rowid最小的記錄

delete from people where peopleid in

(select   peopleid from people group by   peopleid   having count(peopleid) > 1) and

rowid not in (select min(rowid) from   people group by peopleid having count(peopleid)>1)

(2)查詢表中多餘的重複記錄(多個欄位)

select * from vitae a where (a.peopleid,a.seq) in

(select peopleid,seq from vitae group by peopleid,seq having count(*) > 1)

(3)查詢表中多餘的重複記錄(多個欄位),不包含rowid最小的記錄

select * from vitae a where (a.peopleid,a.seq)  in

(select peopleid,seq from vitae group by peopleid,seq havingcount(*) > 1) and

rowid not in (select min(rowid) from vitae group by peopleid,seq having count(*)>1)

2. sql語言元素

1、子句,是語句和查詢的組成部分。

2、表示式,可以生成標量值,也可以生成由列和行資料組成的表。

3、謂詞,指定可以評估為sql三值邏輯(3vl)(真/假/未知)或布林真值的條件,用於限制語句和查詢的效果,或用於更改程式流。

4、查詢,根據特定條件檢索資料。這是sql的一個重要元素。

語句可能對架構和資料產生持久影響,或者可能控制事務,程式流,連線,會話或診斷。

sql語句還包括分號(「;」)語句終止符。雖然並非每個平臺都需要,但它被定義為sql語法的標準部分。在sql語句和查詢中通常會忽略無關緊要的空格,從而可以更輕鬆地格式化sql**以提高可讀性。

3樓:匿名使用者

檢視可用如下方法:

1、建立測試表,插入資料:

create table product

(id int,

name varchar(10),

totol int)

insert into product values (1,'香蕉',100)

insert into product values (2,'橘子',67)

insert into product values (3,'葡萄',89)

insert into product values (4,'蘋果',235)

insert into product values (5,'香蕉',77)

insert into product values (6,'芒果',34)

insert into product values (7,'葡萄',78)

insert into product values (8,'梨',24)

表中資料如:

2、如果查詢name列有重複的資料,可執行sql語句:

select * from product where name in (select name from product group by name having count(*)>1)

說明:查詢的結果就是香蕉和葡萄在表中是有重複的,要把香蕉和葡萄的所有記錄都查詢出來,結果如圖:

4樓:匿名使用者

select * from 表 where b in (select b from 表 group by b having count(*)>1)

以上,希望對你有所幫助!

mysql查欄位所有的值,sql怎麼寫,大神貼語句

第一 種select distinct property name from table name 第二種 select property name from table name group by property name mysql聯查 使用者表去聯查另一個表中的欄位,如果另一個表中的欄位有某...

mysql資料庫查詢同時擁有欄位值的某欄位值

如果剛開始裡面就有bai資料du,需要 update table set c a b然後可以 建立個觸發器zhi 不過這裡又有dao 個問題,就是你之後a或者專b欄位 是插入呢還是屬更新呢每種情況都要建立一個觸發器 舉例 更新a create trigger after update on tabl...

mysql查詢全表某欄位值最大的10條資料

select from 表 order by 要最大值的欄位 desc limit 0,10 select from table order by praise desc limit 10 sql如何查詢表中某個欄位值最大的記錄?步驟1.插入前先copy得到表的最大值 2.新的值 要插入的 步驟1的...