我正在寻找能够使用WHERE在db中选择所有行的东西:
SELECT * FROM fb_post WHERE fb_page_id = 17 AND YEAR(date) = ALL ORDER BY date
所以,在我的应用程序中,我从本地变量设置日期。
SELECT * FROM fb_post WHERE fb_page_id = 17 AND YEAR(date) = ? ORDER BY date
在某些情况下,我想选择所有年份,是否有任何关键词可供选择全部?我不想写这样的第二个查询:
SELECT * FROM fb_post WHERE fb_page_id = 17 ORDER BY date
感谢您的帮助
答案 0 :(得分:0)
如果你发送参数null以获取所有,下面的代码将帮助你在mysql上。对于Mssql,用ISNULL代替IFNULL,用Oracle代替NVL。
SELECT * FROM fb_post WHERE fb_page_id = 17 AND YEAR(date) = IFNULL('your param here',YEAR(date))
答案 1 :(得分:0)
您可以添加一个条件日期检查的布尔值:
SELECT * FROM fb_post
WHERE fb_page_id = 17 AND (NOT checkDate OR YEAR(date) = ALL)
ORDER BY date
如果将checkDate设置为false,则会忽略YEAR(date) = ALL
。