假设我有以下表结构:
Field1 Field2 Field3
val1 valb_1 date
val1 valb_2 date
val1 valb_3 date
val2 valb_4 date
val3 valb_5 date
如何在Field1中最多限制5个不同的值,其中字段可能填充的值与“val1”中的示例完全相同,而Field2中的字段最多包含200个值总是一个不同的价值。按日期排序desc。
另外如何使Field1的限制为5,200限制的例子:50属于val1,100属于val2,100属于val1的field1,即250,其中有100在val 3中的val 2和100,理想情况下,200的限制将是val1中的50和val 2和3中的75的选择。
答案 0 :(得分:0)
我不确定你想要达到什么目标,但是这样考虑一下:
可以通过3个不同的查询解决,结果与UNION一起使用吗?
或者您谈到的这些限制是相关的,因此如果对于字段1的5个值,它们在Field2中显示200个不同的值。
CREATE VIEW F1LIMIT5 as SELECT DISTINCT Field1 from MYTABLE limit 5;
CREATE VIEW F2LIMIT200 as SELECT DISTINCT Field2 from MYTABLE limit 200;
SELECT * from MYTABLE where Field1 in (SELECT * FROM F1LIMIT5) and Field2 in (SELECT * FROM F2LIMIT200) order by Field3 desc ;
但这可能会给你200多条记录。你可以在最后添加LIMIT 200来做到这一点,但我甚至不确定它是否是你想要的。该技术是将事情分解为小步骤,然后以此为基础。我发现使用视图比复杂查询更好,因为你可以测试每个部分以确保你得到你想要的东西