[英]php sql query select between month and year
我想在月份和年份之間的條件中選擇SQL query
。 在我的數據庫中,字段名稱是“月”和“年”,用於商店產生“月和年”的輸入。 現在我想在2015年12月到2016年8月之間進行搜索產生輸入。這是我的sql
SELECT * FROM tbl_produce p WHERE p.status =0 AND ((p.months >='12'
AND p.years>='2015') AND (p.months <='8' AND p.years<='2016)) ;
但是結果返回NULL
,我知道查詢不正確,但是如何更正呢?
為什么不將日期列設計為日期?
如果要保留當前的設計,請嘗試以下操作:
SELECT *
FROM tbl_produce
WHERE status = 0
AND concat(years, if(months > 9, months, concat('0', months)))
BETWEEN '201512' AND '201608'
要么
SELECT *
FROM tbl_produce
WHERE status = 0
AND (
(years = 2015 AND months = 12)
OR
(years = 2016 AND months < 9)
)
您的SQL查詢正在尋找p.months等於12和8以及p.years等於2015和2016的結果。
為了獲得您想要的結果,請將兩組括號之間的AND替換為OR,如下所示:
SELECT * FROM tbl_produce p WHERE p.status =0 AND ((p.months >='12' AND p.years = '2015') OR (p.months <='8' AND p.years = '2016));
如果可以訪問您的表結構,則可以自己運行測試以進行確認,但是我相信這對於您要查找的結果來說是正確的語法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.