首頁  >  問答  >  主體

mysql in 查询, 里面的每个条件都指定返回条数,能否实现,怎么写?

mysql in 查询, 里面的每个条件都指定返回条数,能否实现,怎么写?

SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2)

table_name 里面包含value1和value2的值有很多条,能否指定返回条数。

类似:

select * from table_name where column_name = value1 limit 5;
select * from table_name where column_name = value2 limit 5;

或有其他方法实现这个查询?

高洛峰高洛峰2717 天前758

全部回覆(2)我來回復

  • 高洛峰

    高洛峰2017-04-17 16:15:28

    就是or/in/union all的轉換,效能也是union all比較好,也能滿足你所說的回傳指定條數。

    (select * from table_name where column_name = value1 limit 5)
    union all
    (select * from table_name where column_name = value2 limit 5);

    回覆
    0
  • 高洛峰

    高洛峰2017-04-17 16:15:28

    你這個sql與你的描述好像並不一致
    SELECT column_name(s),count(column_name(s))
    FROM table_name
    WHERE column_name(s) IN (value1,value2,...)
    WHERE column_name(s) IN (value1,value2,...)

    group by )

    這種寫法邏輯上是沒什麼問題,但寫完之後還請看看執行計劃,我如果記得不錯的話,mysql的in的效率並不高,如果是單張表的話,我也沒想出來什麼好主意🎜

    回覆
    0
  • 取消回覆