我有这个问题:
$score = 10;
SELECT timecode, count(tag) as n_tags, tag
FROM dados
WHERE dados.tag = 'tag1'
AND dados.filename = 'file.mp4'
AND (timecode >= '-5' AND timecode <= '15')
AND (timecode = '$score')
GROUP BY timecode
ORDER BY count(tag) DESC
但是我想将第 6 行更改为:
AND (timecode = '$score' AND n_tags > 3)
但这似乎不是正确的做法,它不起作用。
有什么想法吗?
最佳答案
从 WHERE 子句中删除该行并放入 HAVING 子句。 HAVING 子句将查看聚合结果。 WHERE 没有。
SELECT timecode, count(tag) as n_tags, tag
FROM dados
WHERE dados.tag = 'tag1'
AND dados.filename = 'file.mp4'
AND (timecode >= '-5' AND timecode <= '15')
AND (timecode = '$score')
GROUP BY timecode
HAVING count(tag) > 3
ORDER BY count(tag) DESC
此行是多余的,可以删除:AND (timecode >= '-5' AND timecode <= '15')
SELECT timecode, count(tag) as n_tags, tag
FROM dados
WHERE dados.tag = 'tag1'
AND dados.filename = 'file.mp4'
AND (timecode = '$score')
GROUP BY timecode
HAVING count(tag) > 3
ORDER BY count(tag) DESC
关于php - MySQL 查询 - 获取列值 "greater than...",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14982324/