mysql, где count (column_name) = 1?

Вот запрос, который я использую:

SELECT k_id, COUNT(k_id) AS k_count 
FROM template_keyword_link 
WHERE k_id IN(1,2,3,4,5)
GROUP BY k_id;

Этот запрос возвращает что-то вроде
1 | 6
2 | 1
3 | 4
4 | 1
5 | 9

Я хочу добавить что-то вроде AND COUNT (k_id) = 1 так что я получаю
2 | 1
4 | 1

Однако я не могу использовать групповую функцию.

Как мне это сделать?


Обновление:

Другая часть моего вопроса:

Можно ли это использовать как удаление оператор?

что-то вроде

DELETE FROM 
template_keyword_link tkl
LEFT JOIN keywords k
ON tkl.k_id = k.k_id
WHERE tkl.k_id 
IN(SELECT k_id, COUNT(k_id) AS k_count 
FROM template_keyword_link 
WHERE k_id IN(1,2)
GROUP BY k_id
HAVING k_count = 1);

Я получаю

У вас есть ошибка в синтаксисе SQL;


Итак, на основании отзывов я изменил это, чтобы использовать
DELETE tkl, k FROM 
template_keyword_link tkl
LEFT JOIN keywords k
ON tkl.k_id = k.k_id
WHERE tkl.k_id 
IN(SELECT k_id 
FROM template_keyword_link 
WHERE k_id IN(1,2)
GROUP BY k_id
HAVING COUNT(k_id) = 1);

Однако теперь я получаю

Вы можете 'tkl' target table for update in FROM clause

5
задан Brian Tompsett - 汤莱恩 9 July 2015 в 15:32
поделиться