亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

關于Mysql判斷是否存在滿足某一條件的記錄

瀏覽:63日期:2022-06-21 15:08:29

問題描述

需求

查詢哪些用戶存在有效的優惠券 即仍未使用且未過期

假如是查詢一個用戶的話 SQL

select 1 from user_coupon where status = ’未使用’ and current_date<=ovre_date and user_id = ’XXX’ limit 1;

只要有任一行記錄滿足條件的話即返回1, 表示存在可用的優惠券,無需查詢出該用戶所有的有效優惠券記錄

如果用java表述的話 相當于

for(UserCoupon e : list){ if(e.status == 未使用 && currentDate <= e.overDate){return true; }}

但假如查詢條件是一個用戶ID列表呢? 這時好像只能用distinct或group by了,必須要先查詢出所有記錄了, 沒辦法做到limit 1了

select distinct user_id from user_coupon where ... and user_id in (XXX,XXX,XXX);selec user_id from user_coupon where ... and user_id in (XXX,XXX,XXX) group by user_id;

查詢條件為列表的情況下 有沒辦法指定只要有一條記錄滿足條件即返回 無需查詢所有 這樣的話 也省了用distinct和group by了

問題解答

回答1:

沒太看懂問題。如果查詢條件是列表的話,你希望返回結果是所有至少有一張優惠券的用戶嗎?如果是的話,這樣寫:select user_id, count(1) as c from user_coupon where ... group by user_id having c > 0 order by null如果百萬級以下的表,速度應該可以接受,但表比較大的情況下可能有性能問題,建議用explain分析一下。

相關文章:
主站蜘蛛池模板: 草草视频在线免费观看 | 美女全黄网站免费观看 | 亚洲综合精品一二三区在线 | 久久综合一区 | 大片黄色 | 国产网友自拍视频 | jizzjiz熟丰满老妇日本 | 国产一级性生活 | 高清国产天干天干天干不卡顿 | 亚洲免费一 | 欧美日韩国产中文字幕 | 欧美日韩亚洲综合另类ac | 久青草免费视频手机在线观看 | 91丨国产| 免费黄色小视频在线观看 | 日本高清毛片视频在线看 | 小明看看免费视频 | 精品成人一区二区三区免费视频 | 国产欧美日韩综合精品无毒 | 精字窝地址二永久2021 | 一级毛片免费看 | 国产黄色一级大片 | 国产专区在线播放 | 欧美日本一道本 | 亚洲精品久中文字幕 | 国产逼 | 午夜视频你懂的 | 成人午夜性影院视频 | 成 人 免费 黄 色 视频 | 亚洲 欧美 清纯 校园 另类 | 香蕉 在线播放 | 免费免费啪视频在线 | 国产精品视频色拍拍 | 国产馆在线观看视频 | 午夜精品亚洲 | 中文字幕最新中文字幕中文字幕 | 国产精品久久久久久一区二区三区 | 青青青视频精品中文字幕 | 国产黄 | 亚洲午夜高清 | 成人免费视频观看无遮挡 |