【问题标题】:mysql queries whose results are not quite right结果不完全正确的mysql查询
【发布时间】:2020-07-29 14:15:42
【问题描述】:

我有一个数据库:

我想检索卡号为 7689、产品 ID 为 73 或 71 的条件的数据。

 $this->cekModel->where('card_number', 7689)->where('id_product ', '73')orWhere('id_product', '71')->FindAll();

结果必须显示 2 个数据,即 id = 1 和 id = 4 但我使用上面的查询只得到一个数据

【问题讨论】:

  • 必须?你错了。你知道“或”条件是如何工作的吗?
  • 其实我用的是代码 $this-> checkModel-> where ('card_number', 7689) -> where ('id_product', '73') 但它只返回一条记录
  • mysql 查询的结果总是正确的,除非你在 mysql 中发现了一个你没有发现的 bug。
  • 别的不说,不应该是or_where吗?

标签: mysql laravel where-clause codeigniter-4 sql-in


【解决方案1】:

whereIn() 不做你想做的事吗?

$this->cekModel
    ->where('card_number', 7689)
    ->whereIn('id_product', array(71, 73))
    ->FindAll();

【讨论】:

    【解决方案2】:
    $this->cekModel
    ->where('card_number', 7689)
    ->whereIn('id_product', array(71, 73))
    ->FindAll();
    

    上面的代码在我的控制台上不能正常工作(返回错误的结果)。 我尝试了修改,它成功了。

     $data=['71','73'];
     $this->cekModel
        ->where('card_number', 7689)
        ->whereIn('id_product', $data)
        ->FindAll();
    

    谢谢你..

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-07
      • 2015-01-07
      • 2013-09-19
      • 1970-01-01
      相关资源
      最近更新 更多