加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql where count(column_name)= 1?

发布时间:2020-12-11 23:46:44 所属栏目:MySql教程 来源:网络整理
导读:这是我正在使用的查询: 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 |

这是我正在使用的查询:

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,2)
GROUP BY k_id
HAVING k_count = 1);

我明白了

You have an error in your SQL syntax;

所以基于反馈我改变了这个使用

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);

但是现在我得到了

You can’t specify target table ‘tkl’ for update in FROM clause

最佳答案 WHERE子句在计算COUNT(*)之前应用,因此您需要在HAVING之后应用.

  SELECT k_id,COUNT(k_id) AS k_count 
    FROM template_keyword_link 
   WHERE k_id IN (1,5)
GROUP BY k_id
  HAVING k_count = 1

另见:http://dev.mysql.com/doc/refman/5.1/en/select.html

** UPD **:

TIAS ;-)顺便说一下,查询语法对我来说似乎没问题,但是你不忘记指定template_keyword_link和关键字加入条件子句吗? mysql会给你带来任何错误吗?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读