php “大于或等于”和“小于或等于”CODEIGNITER
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/18528523/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
'Greater than or equal' and 'less than or equal' CODEIGNITER
提问by jeepers_creepers
I have to query something that has a where condition with >=
and =<
but I have no luck. This is in CODEIGNITER.
我必须查询具有 where 条件的内容>=
,=<
但我没有运气。这是在CODEIGNITER 中。
This is the natural way in mysql query:
这是 mysql 查询中的自然方式:
SELECT COUNT(payment.keyid) AS rec_count, `product_key`.`client_name`,
`product_key`.`contact_email`, `product_key`.`status`, `product_key`.`id`,
`payment`.`paymentdate`, (payment.id) as pid, `payment`.`subscription_type`
FROM (`product_key`)
LEFT OUTER JOIN `payment` ON `payment`.`keyid`=`product_key`.`id`
WHERE `payment`.`paymentdate` >= '2013-08-01'
AND `payment`.`paymentdate` =< '2013-08-31'
AND `status` = 'purchased'
GROUP BY `product_key`.`id`
ORDER BY `client_name` asc
And this is what I have:
这就是我所拥有的:
return $this->db
->select('COUNT(payment.keyid) AS rec_count')
->select('product_key.client_name, product_key.contact_email, product_key.status, product_key.id, payment.paymentdate, (payment.id) as pid,payment.subscription_type')
->from('product_key')
->where('payment.paymentdate >=', $month_start)
->where('payment.paymentdate =<', $month_end)
->where('status', 'purchased')
->join('payment', 'payment.keyid=product_key.id', 'left outer')
->order_by('client_name', "asc")
->group_by('product_key.id')
->get()
->result();
Maybe someone could help me on this. Thanks.
也许有人可以帮助我。谢谢。
采纳答案by Tobias Golbs
Change =<
to <=
.
更改=<
为<=
。
I also tested your current query in phpmyadmin, because i could not believe that it does not throw an error. But mine does it. So your query should not work in phpmyadmin.
我还在 phpmyadmin 中测试了您当前的查询,因为我无法相信它不会引发错误。但我的做到了。所以你的查询不应该在 phpmyadmin 中工作。
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '=< ...' at line ...
回答by Gautam3164
Try to change the =<
to <=
like
尝试更改=<
为<=
喜欢
->where('payment.paymentdate >=', $month_start)
->where('payment.paymentdate <=', $month_end)
And betterbut not cumpolsury to join the table before the where condition.Now your query should be like
而更好的,但不是cumpolsury到哪里condition.Now您的查询应该像之前参加表
->select('COUNT(payment.keyid) AS rec_count')
->select('product_key.client_name, product_key.contact_email, product_key.status, product_key.id, payment.paymentdate, (payment.id) as pid,payment.subscription_type')
->from('product_key')
->join('payment', 'payment.keyid=product_key.id', 'left outer')
->where('payment.paymentdate >=', $month_start)
->where('payment.paymentdate <=', $month_end)
->where('status', 'purchased')
->order_by('client_name', "asc")
->group_by('product_key.id')
->get()
回答by Indah
from what i know, you can write them like this
据我所知,你可以这样写
$this->db->select('COUNT(payment.keyid) AS rec_count, product_key.client_name, product_key.contact_email, product_key.status, product_key.id, payment.paymentdate, (payment.id) as pid, payment.subscription_type', false);
$this->db->where('payment.paymentdate >= "2013-08-01"');
$this->db->where('payment.paymentdate <= "2013-08-31"');
$this->db->where('status', 'purchased');
$this->db->group_by('product_key.id');
$this->db->order_by('client_name', 'asc');
$this->db->join('payment', 'payment.keyid=product_key.id', 'LEFT OUTER')
$this->db->get('product_key');
回答by Cybrohosting
$this->db->where("DATE_FORMAT(ph_payment_date, '%d-%m-%Y') BETWEEN '$startdate' AND '$enddate'");
$this->db->where("DATE_FORMAT(ph_payment_date, '%d-%m-%Y') >= '$startdate'");
$this->db->where("DATE_FORMAT(ph_payment_date, '%d-%m-%Y') <= '$enddate'");
回答by Nil'z
Try:
尝试:
$this->db
->select('COUNT(payment.keyid) AS rec_count, product_key.client_name, product_key.contact_email, product_key.status, product_key.id, payment.paymentdate, (payment.id) as pid, payment.subscription_type', false)
->from('product_key')
->join('payment', 'payment.keyid=product_key.id', 'LEFT OUTER')
->where('payment.paymentdate >=', '2013-08-01')
->where('payment.paymentdate =<', '2013-08-31')
->where('status', 'purchased')
->group_by('product_key.id')
->order_by('client_name', 'asc')
->get();