MySQL检查一列是否具有基于另一列的值

时间:2018-09-17 07:07:24

标签: php mysql pdo

我正在使用PDO处理我的数据库,并且我有一张表:

Table:
id    sku    category
1     XYZ    Ballerinas
2            Ballerinas
3            Ballerinas
4     ABC    Ballerinas

如您所见,我有4行属于同一类别Ballerinas,但是其中两行没有sku。仅在全部 Ballerinas具有sku的情况下,如何才能使用pdo查询返回这些行?

谢谢! :D

2 个答案:

答案 0 :(得分:3)

查找匹配类别的一种方法是按类别汇总,然后断言总计数与不是个空字符串的[HttpGet] [Authorize] public ActionResult RemoveAdditionalRules(int addId) { HouseRules rules = db.HouseRules.Find(addId); If(rules == null) { //return error msg. return Json(JsonRequestBehavior.AllowGet); } db.HouseRules.Remove(rules); db.SaveChanges(); return Json(JsonRequestBehavior.AllowGet); } 值的计数匹配。如果这两个计数匹配,则保留该类别。

sku

Demo

答案 1 :(得分:2)

或者您也可以不加入而做:

SELECT *
FROM Table1 t1
WHERE NOT EXISTS (SELECT 1 FROM Table1 t2 WHERE t1.category = t2.category AND t2.sku IS NULL);

如果您还将空值('')也视为“不是值”,则exists子句中的条件应为

where t2.category=t1.category and not t2.SKU>''