我希望我的数据库在以下两种情况之一下返回行:
- 该行包含特定的
value
“val”并且属于type
“sometype” - 还有其他行,确实具有
type
“某种类型”并且与name
当前检查的行相同。
为此,我进行了以下查询:
SELECT c.name, c.value, c.type
FROM `table` AS c
WHERE
c.type='sometype' AND c.value='val'
OR
c.type='othertype' AND
0<(SELECT count(*) FROM `table` AS d WHERE d.name=c.name and c.name='sometype')
不幸的是,这将返回所有行“ othertype
”。我只想要这些,他们有同名的朋友并输入'sometype'。
我认为问题是,我不知道如何获取对当前检查行(我认为是c.fieldname
)中值的引用。我相信d.name = c.name
会返回与当前检查的行具有相同名称的所有行。但嵌套选择始终是>0
.