我想要搜索 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/