php - 从表中获取在 CodeIgniter 的某些列中包含相同值的所有行

标签 php mysql sql codeigniter

现在我可以通过在 CodeIgniter 中使用这条语句从名为 cars 的表中获取所有值:

$this->db->get('cars')->results();

问题是我想根据名为slug 的列中的相同值选择行,这是一个存储的URL,例如“非常好的汽车出售”或“状况良好的黑色野马”。基本上我想找到所有重复项(但我想稍后将其扩展到名称、描述等,但我现在主要关心的是 slug 列)

我的数据库查询在 CodeIgniter 环境中应该如何显示以仅获取重复项,我的意思是表中至少有两次具有相同 slug 的行?

是否可以通过 CI Active Record 而不是通过自定义 SQL 查询?

最佳答案

首先获取重复记录的 ID,然后将此结果用作子查询。

$this->db->select('`id`');
$this->db->from('cars');
$this->db->group_by('slug');
$this->db->having('count(slug) > 1');
$where_clause = $this->db->get_compiled_select();

$this->db->get('cars');
$this->db->where('`id` IN ($where_clause)', NULL, FALSE); 

关于php - 从表中获取在 CodeIgniter 的某些列中包含相同值的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20239701/

相关文章:

sql - 表别名如何影响性能?

php - 如何在数据库中存储数组(PHP/MySQL)?

从浏览器而非 CLI 调用时 PHP 脚本失败

php - Laravel Mysql DB 加入 2 个多态父类

mysql - 如何根据日期与MYSQL的DATETIME字段进行比较?

sql - 如何解决 Redshift 错误 : "Missing data for not-null field"?

macos - MAMP 将其 php.ini 保存在哪里?

php - 使用 PHP 在 MySQL 中连接树表而不重复行

php - 如何使 PHP if 语句依赖于 SQL 查询结果

sql - 我正在尝试复制文件,但收到错误消息