如何从codeigniter中的数据库表中获取偶数/奇数id号

时间:2014-11-12 15:46:29

标签: mysql database codeigniter

我是codeigniter的新手,只是在查询中堆叠以解决紧急项目的报告。请帮我Codeigniter的专家。

  • 我有一个大型数据库表,并希望只显示该表中的奇数/偶数数据行,这些行将按名称为“sale_id”的表字段进行过滤。我在PHPMyadmin中尝试了原始编码,它对我有用。但不能在Codeigniter中申请。

SELECT * FROM ospos_pak_sub_cat WHERE id %2 =0;

在原始PHP编码中为我工作。如何在Codeigniter中使用它。我在该查询中使用了Where Condition,现在想要添加新查询。 现有Where条件如下,工作正常。

$this->db->where('sale_date BETWEEN "'. $inputs['start_date']. '" and "'. $inputs['end_date'].'"');

它正在运行,我尝试了下面的代码来获得无效的解决方案并获得错误。

$this->db->where('sale_id %2'=> 0);

获取此行的错误。说 -

Parse error: syntax error, unexpected '=>' (T_DOUBLE_ARROW)

请帮我解决问题。提前致谢。

4 个答案:

答案 0 :(得分:7)

在您的模型中,只需编写类似的查询:

$this->db->select('*');
$this->db->from('ospos_pak_sub_cat');
$this->db->where('sale_id %2=', 0);
$query_result = $this->db->get();
$result = $query_result->result();

您错过了代码中的'='。希望,它会奏效。

答案 1 :(得分:0)

我不确定,但我认为它会起作用尝试这一行 $this->db->where('sale_id %2',0);

答案 2 :(得分:0)

正如您所提到的,您可以在现有的where条件中添加新条件,如下所示

$this->db->where('(sale_date BETWEEN "'. $inputs['start_date']. '" and "'. $inputs['end_date'].')" and ((sale_id % 2) = 0)');

答案 3 :(得分:0)

SQL中的

%字符是通配符而不是模数,它可以解释您的错误。您可以使用MOD功能代替http://dev.mysql.com/doc/refman/5.0/en/mathematical-functions.html#function_mod

所以生成的代码是:

    $this->db->where('MOD(sale_id ,2) => 0');