php - codeigniter 的 sql 查询

标签 php mysql codeigniter

如何构建如下查询

SELECT 
    *
FROM
    propertylist
WHERE
    (propertyfor = 'RENT')
        AND (state LIKE '%AA%' OR city LIKE '%AA%'
        OR address1 LIKE '%AA%'
        OR description LIKE '%AA%'
        OR address2 LIKE '%AA%')
ORDER BY transdt DESC

在 codeigniter 中?

我喜欢

$this->db->where('propertyfor',$type);
$this->db->like('state',$val);
$this->db->or_like('city',$val);
$this->db->or_like('address1',$val);
$this->db->or_like('description',$val);
$this->db->or_like('address2',$val);
$this->db->order_by('transdt', 'DESC');

$query = $this->db->get('propertylist');

有什么帮助吗?

最佳答案

试试这段代码:

$this->db->where('propertyfor', $type, FALSE);
$this->db->where("state LIKE '%{$val}%' OR city LIKE '%{$val}%'
                OR address1 LIKE '%{$val}%'
                OR description LIKE '%{$val}%'
                OR address2 LIKE '%{$val}%'", NULL, FALSE);
$this->db->order_by('transdt', 'DESC');

$query = $this->db->get('propertylist');

更新: 不幸的是,Codeigniter 没有其他方法可以在何处、来自何处或任何其他地方实现复杂的条件。 您的代码:

$this->db->where('propertyfor',$type);
$this->db->like('state',$val);
$this->db->or_like('city',$val);
$this->db->or_like('address1',$val);
$this->db->or_like('description',$val);
$this->db->or_like('address2',$val);

通过 Codeigniter 转换为 SQL:

WHERE propertyfor = {$type}
    AND state LIKE {$val}
    OR city LIKE {$val}
    OR address1 LIKE {$val}
    OR description LIKE {$val}
    OR address2 LIKE {$val}

关于php - codeigniter 的 sql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22370976/

相关文章:

mysql - 将 WordPress 从 MAMP 移至 WAMP,无法访问页面

php - Codeigniter 多个 foreach 循环

php - 处理 PHP/CodeIgniter 表单中的附加信息表单字段并存储在 MySQL 中

php - 使用/#/重定向 URL

mysql - 选择昨天和一周前的结果

mysql - 无法从类型 [java.lang.Object[]] 转换为类型 [@org.springframework.data.jpa.repository.Query

php - 使用 PHP 的 FedEx Shipping API

PHP - 如何在另一个文件中显示以表单输入的数据?

php - 验证 PHP 表单并更改提交按钮而不是重定向到状态页面

php - jquery 使用 .submit() 表单不提交