我是数据库中的一个begginer。我的问题是困难的,因为我不是英语,良好的用言语来解释,所以这里是我会做:语法和IN(每个)而不是MySQL中的IN(或)问题
SELECT DISTINCT(link)
FROM foo
WHERE
(
foo.name IN('bar1' AND 'bar2')
)
AND
(
foo.text IN('bar3' AND 'bar4' AND ...)
)
AND
(
foo.desc = 'bar'
)
AND (...) etc..
LIMIT 100
如果发现这个解决方案似乎伟大的工作,但不是在我的多的情况下,语句(当syntaxe不允许有GROUPBY +具有在每个括号中):
foo.name IN('bar1', 'bar2') // len = 2
GROUP BY link
HAVING COUNT(foo.name) = 2 // len
可能难以所以这里明白的是表的一个简单的例子:
| id | link | name |
| -- | ---- | ---- |
| 01 | HG.C | bar1 |
| 02 | IJ.N | bar2 |
| 03 | HG.C | bar2 |
| 03 | SZ.W | bar3 |
SELECT DISTINCT(link)
FROM foo
WHERE
(
foo.name IN('bar1' AND 'bar2')
)
应该换货政... rn:HG.C
我尝试了很多失败的东西,所以我仍然在寻找一种方法......我想我的大脑没有格式化(还)为SQL。如果有人能帮助我,那会很好。
在旁注:“DISTINCT”不是函数。所以你的括号只是令人困惑。你应该删除它们。 (但是,您不希望在这里使用DISTINCT,而是使用GROUP BY进行聚合。) –