我有一個表,我想檢查一列中所有的值是否相同。從一個表中選擇查詢來檢查列中是否存在相同的值,mysql select查詢
以下是我的表格中的條目。
兩個列
rid,value
(1,1)
(1,1)
(2,1)
(2,0)
(2,0)
(3,0)
(3,0)
(3,0)
我要查詢這使我擺脫1,因爲其所有的值是1。1除掉所有記錄的值爲1,消除2和3不具有的所有值設爲1,這樣他們不應該被選中。
我有一個表,我想檢查一列中所有的值是否相同。從一個表中選擇查詢來檢查列中是否存在相同的值,mysql select查詢
以下是我的表格中的條目。
兩個列
rid,value
(1,1)
(1,1)
(2,1)
(2,0)
(2,0)
(3,0)
(3,0)
(3,0)
我要查詢這使我擺脫1,因爲其所有的值是1。1除掉所有記錄的值爲1,消除2和3不具有的所有值設爲1,這樣他們不應該被選中。
通過使用組,並具有能得到你想要的東西:
SELECT rid, value
FROM my_table
GROUP BY rid
HAVING COUNT(distinct value) = 1
UPDATE
根據該意見,篩選價值將得到的結果:
SELECT *
FROM
(
SELECT rid, value
FROM my_table
GROUP BY rid
HAVING COUNT(distinct value) = 1
) AS T1
WHERE value = 1
如果值只會是1或0,那麼你可以這樣做:
SELECT rid, value
FROM my_table
GROUP BY rid
HAVING COUNT(*) = SUM(value)
你可以這樣做:
CREATE TABLE my_table (
id varchar(255),
col_value varchar(255)
);
INSERT INTO my_table
VALUES
('1','1'),
('1','1'),
('2','1'),
('2','1'),
('2','1'),
('2','4'),
('3','1'),
('3','1');
查詢選擇:
SELECT src.* FROM
(
SELECT DISTINCT t1.* FROM my_table AS t1
) AS src
WHERE src.id NOT IN(
SELECT test.id
FROM
(
SELECT DISTINCT t1.* FROM my_table AS t1
) AS test
GROUP BY test.id
HAVING COUNT(*) > 1
)
fiddle這裏。
感謝您的回覆,但這並沒有給我所需的結果,正如你在我的表格中看到的那樣,它只有1和0的值。所以我只想擺脫值1 ..在你的查詢中它給了我結果的所有記錄的價值是相同的..請檢查我給的數據... – Satish 2014-12-08 08:43:18
順便說一句,你的pk是什麼? – Strawberry 2014-12-07 10:11:11