Php 如何在逗号分隔的行值上使用codeigniter
我正在为我的项目使用codeigniter并实现搜索。我想从用户表中筛选出拥有汽车的用户。此表的结构如下所示Php 如何在逗号分隔的行值上使用codeigniter,php,mysql,codeigniter,Php,Mysql,Codeigniter,我正在为我的项目使用codeigniter并实现搜索。我想从用户表中筛选出拥有汽车的用户。此表的结构如下所示 +-----+----------+---------------------+---------------+ | #id | username | cars | other_details | +-----+----------+---------------------+---------------+ | 1 | MAC | Jagua
+-----+----------+---------------------+---------------+
| #id | username | cars | other_details |
+-----+----------+---------------------+---------------+
| 1 | MAC | Jaguar,Porche | -- |
| 2 | DEV | Porche,Ferrari,Ford | -- |
| 3 | MONICA | Ford,Audi | -- |
+-----+----------+---------------------+---------------+
在前端,我从复选框中选择汽车,这些复选框返回汽车数组,以查找拥有这些汽车的用户,如[“波奇”、“法拉利”]。我无法找到如何让用户在模型中使用codeigniter活动记录的解决方案。请帮助我了解如何获取拥有阵列中可用汽车的用户/行。
提前感谢。最后,我找到了答案。
首先,我使用逗号(,)对数组进行内爆,然后使用sql查询和正则表达式得到这样的答案
$this->db->sql("select * from users where `cars` NOT REGEXP '$cars'");
这个查询根据我的要求提供数据。最后,我找到了答案。
首先我使用逗号(,)内爆数组,然后使用sql查询和正则表达式得到这样的答案
$this->db->sql("select * from users where `cars` NOT REGEXP '$cars'");
此查询根据我的要求提供数据。第一步应该是架构规范化。否则,您将得到
FIND_IN_SET
或其他次优拆分解决方案。由于依赖关系,我将无法规范化此列。我可以在集合中查找集合,但不知道如何在数组中使用它。有两种方法。。。打破POST
数组,将LIKE
与foreach
一起使用,或者在查询中使用RLIKE
,因为它们有大量行。所以,我想在模型的数据库端对其进行过滤。第一步应该是模式规范化。否则,您将得到FIND_IN_SET
或其他次优拆分解决方案。由于依赖关系,我将无法规范化此列。我可以在集合中查找集合,但不知道如何在数组中使用它。有两种方法。。。打破POST
数组,将LIKE
与foreach
一起使用,或者在查询中使用RLIKE
,因为它们有大量行。所以,我想在模型的数据库端对其进行过滤。