我一直在寻找是否有一个MySQL选择器允许我选择一列,如果另一列有不同的值。
示例:
id name value
----------------
1 john 1
2 craig 1
3 john 2
所以,我要做的是选择第1行和第3行,因为它们具有相同的name
并且value
已更改。
如果无法做到这一点,我可以解析代码中的所有结果,但如果MySQL能为我做到这一点,那就更好了!
答案 0 :(得分:1)
试试这个:
Select * from `table` where Name in (
select name from `table` Group by Name having Count(*)>1)
内部选择查找表中存在多个名称的名称,外部选择获取该名称的数据。
答案 1 :(得分:0)
您可以选择具有多个值的所有名称,然后选择具有这些名称的所有行:
SELECT *
FROM mytable
WHERE name IN (SELECT name
FROM mytable
GROUP BY name
HAVING COUNT(*) > 1)
答案 2 :(得分:0)
这可能有用;
select * from table a
where exists
(select b.id from table b
where a.name = b.name and a.value <> b. value)