PHP/MySQL-选择字段唯一的所有行

PHP/MySQL-选择字段唯一的所有行,php,mysql,select,unique,Php,Mysql,Select,Unique,我有一张这样的桌子: column_a column_b foo 1 bar 1 bar 2 baz 4 我希望得到以下结果,包含列_b中具有唯一字段值的所有行: foo0和bar1都具有列_b值“1”,因此“1”不是唯一的。 是否有一个MySQL表达式可以过滤所有具有唯一列的行 也许是这样的: select * from table where isunique(column_b) 另外:我不需要像DISTINCT这

我有一张这样的桌子:

column_a  column_b
  foo        1
  bar        1
  bar        2
  baz        4
我希望得到以下结果,包含列_b中具有唯一字段值的所有行:

foo0和bar1都具有列_b值“1”,因此“1”不是唯一的。 是否有一个MySQL表达式可以过滤所有具有唯一列的行

也许是这样的:

select * from table where isunique(column_b)
另外:我不需要像DISTINCT这样的东西

编辑已解决的问题:

多亏了YaK和jcho360,这是一个解决方案:

select column_a, column_b from table group by column_b having count(column_b) = 1


thx to andrewtweber

使用计数功能将提供一个选择,其中列_b中的值只出现一次。试试这个:

select * from table group by (column_b) having count(column_b) = 1;

使用计数函数将提供一个选择,其中列_b中的值只出现一次。试试这个:

select * from table group by (column_b) having count(column_b) = 1;
请尝试从表中选择uniquecolumn_b,column_a?:

编辑修复打字错误

尝试从表中选择唯一的列\u b,列\u a?:

SELECT column_a, column_b, COUNT(1) AS total
FROM table
GROUP BY column_b
HAVING total = 1
编辑修正打字错误

SELECT column_a, column_b, COUNT(1) AS total
FROM table
GROUP BY column_b
HAVING total = 1
我认为这应该行得通。这将所有列_b组合在一起,并统计有多少列具有该特定值,然后将结果集限制为具有唯一列_b值的列


我认为这应该行得通。这将所有列组合在一起,并计算有多少列具有该特定值,然后将结果集限制为具有唯一列值的列。

这些答案对您有帮助吗?将一个标记为correct@NikolaiWüstemann:没问题,但我不介意a+1;哦,我的坏,我想你需要更多的声誉来做到这一点。不,我有足够的,我做了我的工作;非常感谢。这些答案对你有帮助吗?将一个标记为correct@NikolaiWüstemann:没问题,但我不介意a+1;哦,我的坏,我想你需要更多的声誉来做到这一点。不,我有足够的,我做了我的工作;非常感谢。让COUNTcolumn_b=1就足够了,因为如果没有行,那么它就根本不包括在结果中。更糟糕的是,如果列\u b包含空值:则它们的计数等于0,并将返回一个随机值作为列\u a值,因为如果没有行,则结果中根本不包含该值。更糟糕的是,如果列_b包含空值:则它们的计数等于0,并将以随机值作为列_a值返回-1:它们在哪个版本中引入了唯一函数?糟糕,我认为Oracle语法中的唯一函数是不同的:-1:它们在哪个版本中引入了唯一函数?糟糕,糟糕,在考虑Oracle语法时,unique的作用是不同的: