SQL 根据单列的不同值选择记录

Posted

技术标签:

【中文标题】SQL 根据单列的不同值选择记录【英文标题】:SQL To Select Records based on different values of a single column 【发布时间】:2013-09-14 20:45:26 【问题描述】:

表格

Que_id | question    | isPicture | cat_det_id

1        Where are U?   1             27

2        Hello          0             22

3        Hey            1             31

4        What is Dis?   1             27
.. .    . ........      ..           ....
...     ...........     .             ...

以图中的表格为例,我想根据cat_det_id的不同值选择不同的数字记录。

对于 Instance,选择 cat_det_id 为 27 的 5 条记录、cat_det_id 为 31 的 10 条记录和 cat_det_id 为 22 的 7 条记录

并且这些记录将显示为按同一 cat_det_id 升序排序的记录集。

谢谢。

【问题讨论】:

您希望结果中的每个 cat_det_id 有一行,还是要全部列出? 我认为你应该学习一些 SQL 教程 - w3schools.com/sql 【参考方案1】:

编辑:出于某种原因,我假设您使用的是 mysql,但您并没有说您的问题既不是关于标签的,如果您使用的是其他 RDMS,您将不得不更改 LIMIT 部分,因为它特定于 mysql,但 union 和 order by 仍然有效。


你可以用联合来做到这一点

(SELECT * FROM YOURTABLE WHERE  cat_det_id = 27 LIMIT 5)
UNION
(SELECT * FROM YOURTABLE WHERE  cat_det_id = 31 LIMIT 10)
UNION
(SELECT * FROM YOURTABLE WHERE  cat_det_id = 22 LIMIT 7)
ORDER BY cat_det_id ASC

【讨论】:

以上是关于SQL 根据单列的不同值选择记录的主要内容,如果未能解决你的问题,请参考以下文章

mongodb上的sql查询以获取多列的计数与单列的id值

根据sql中的条件从不同的表中选择一个值

SQL Server Update 根据自身表不同记录的值修改,链表修改

Oracle:根据不同列的值选择不同的列

如何根据总和值选择特定记录

MySQL在1个表中选择不同的记录并根据另一个表中的值计算每个组