0

我在 MySQL 表中有一个项目列表,每个项目都有一个组号和唯一的项目号。

我正在尝试选择符合 2 个标准的记录。

首先,我需要选择满足组和项目编号的记录。如果没有找到我想要选择的记录只属于一个组。

无论哪种方式,都只需要选择一个记录。

4

2 回答 2

1
SELECT *
FROM YourTable
WHERE GroupID = :group
ORDER BY ItemID = :item DESC
LIMIT 1

LIMIT 1使它只返回一条记录。该ORDER BY子句使其更喜欢与项目条件匹配的记录(如果有)。

于 2013-10-25T19:47:15.643 回答
0

尝试这个

这行不通

Select * From MyTable 
Where (GroupID = 1 and ItemID = 2) or (GroupID = 1)

这行得通

IF EXISTS (SELECT 1 FROM MyTable WHERE GroupID = 1 AND ItemID = 2) 
   BEGIN 
       SELECT TOP 1 * FROM MyTable WHERE GroupID = 1 AND ItemID = 2 
   END 
ELSE 
   BEGIN 
      SELECT TOP 1 * FROM MyTable WHERE GroupID = 1 
   END 
  • 将 MyTable 替换为您的表的名称
  • 将 GroupID 和 ItemID 替换为您的列名
  • 将数字 1 和 2 替换为与您希望过滤的列关联的任何值
于 2013-10-25T19:12:56.820 回答