从一个表中选择查询来检查列中是否存在相同的值,mysql select查询
问题描述:
我有一个表,我想检查一列中所有的值是否相同。从一个表中选择查询来检查列中是否存在相同的值,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这里。
+0
感谢您的回复,但这并没有给我所需的结果,正如你在我的表格中看到的那样,它只有1和0的值。所以我只想摆脱值1 ..在你的查询中它给了我结果的所有记录的价值是相同的..请检查我给的数据... – Satish 2014-12-08 08:43:18
顺便说一句,你的pk是什么? – Strawberry 2014-12-07 10:11:11