[英]MYSQL Select on two values one column
我需要從我的mysql表中選擇一行。
在表中有兩行,其中一個值相等。
TABLE
-----
articleId
keywordId
現在我需要選擇一篇文章,其關鍵字ID = 1,以及關鍵字Id = 12。
關鍵字的每個鏈接都有自己的記錄。
如果有文章與兩個關鍵字匹配,我該怎么做一個選擇查詢才能知道?
試試這個:
SELECT *
FROM tablename
WHERE keywordId IN (1, 12)
GROUP BY articleId
HAVING COUNT(*) = 2;
這稱為關系部門 。 這是一種方法:
SELECT *
FROM tablename
WHERE articleId IN
(
SELECT articleId
FROM tablename
WHERE KeywordId IN (1, 2)
GROUP BY articleId
HAVING COUNT(KeywordId ) = 2
);;
SELECT *
FROM `table_name`
WHERE `keywordId` = '1' AND `keywordId` = '12'
您還可以為每個關鍵字使用子查詢並加入它們
select k1.articleId from
(
select articleId from TABLE where keywordId = 1
) k1
inner join
(
select articleId from TABLE where keywordId = 12
) k2 on k1.articleId = k2.articleId
根據索引和表大小,這可能比Group By更有效
SELECT *
FROM table
WHERE keywordId IN (1, 12);
select ArticleId from Table where keywordId = 1
Intersect
select ArticleId from Table where KeywordId = 12
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.