MySQL 使用 where 子句进行限制

标签 mysql limit

我想要搜索 View 中的一些数据。数据具有不同的类型(在列中定义),我想为每种类型定义不同的限制。

示例my_view

id   |    type    |     content
--        ----          -------
1         'dog'        'Lorem ipsum dolor sit amet, consectetur...'
2         'cat'        'adipisicing elit, sed do eiusmod...'
3         'cat'        'tempor incididunt ut labore...'
4         'dog'        'et dolore magna aliqua...'

我想要一个类似于以下内容的查询:

SELECT * FROM `my_view` WHERE ... LIMIT [[ max of 2 dogs, 1 cat and 1 sheep]]

我当然可以为此执行三个查询并将它们组合在一起(在查询中或之后),但据我所知,将为每次搜索重新创建 View ,因此效率非常低.

最佳答案

您无法同时完成所有工作。

使用联盟

(SELECT * 
FROM my_view
WHERE type='dog'
ORDER BY yyy
LIMIT 2)

UNION

(SELECT * 
FROM my_view
WHERE type='cat'
ORDER BY xxx
LIMIT 1)

等等

关于MySQL 使用 where 子句进行限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12247555/

相关文章:

mysql - 错误 2005 (HY000) : Unknown MySQL server host in aws

mysql - Sequelize select * where attribute is NOT x

java - 应用程序服务器最大内存限制

php - 如何限制一分钟内发出的用户请求数

mysql - sql如何根据一组不同的条件查询获取不同值的总和

mysql innodb 选择偏移量慢

共享服务器上的 PHP 5.4 旧身份验证,无需编辑 mysql 服务器即可修复

PHP while($x = mysql_fetch_array($y))

mysql select语句结果限制

mysql - Php/Mysql Union 和 Limit offset