【发布时间】:2014-09-02 15:50:08
【问题描述】:
我正在构建一个包含多个选项的搜索表单。我们的想法是寻找具有某些特征的人,例如职业、上一份公司工作的名称、多年经验等。
在表格的第一部分,您可以输入您希望候选人拥有的职业,在第二部分,您可以输入一个或多个公司名称。我想要的是我的查询看起来像这样:
SELECT *
FROM work_experience
WHERE position = 'some position'
AND (company LIKE 'company 1' OR company LIKE 'company 2', etc)
问题是我不知道用户可能输入的许多公司名称,我所做的是将每个名称存储在一个我不知道它可能有多大的数组中。
我尝试使用 or_like() 活动记录,但问题是它寻找的人是 'positionx' 或在 'company x' 工作的人,这不是我想要的结果。
有没有办法使用活动记录进行此查询?或者,如果我不知道要搜索的公司名称的确切数量,我该如何使用简单的 SQL 进行查询。
感谢您的宝贵时间和帮助,如果有不清楚的地方请告诉我。
【问题讨论】:
-
如果您必须检查多个值,为什么不使用 where_in。如果您需要更多信息,请告诉我。
-
我需要更多信息 :( 如何使用 where_in?
-
@Zeeshan 刚刚阅读了文档, where_in 听起来不错,但问题是用户不会在存储时输入准确的公司名称。例如,候选人可能已将“google”存储为公司,并且用户搜索“Google”。这就是我使用“喜欢”的原因。
-
如果您采用与您的示例类似的公司名称, where_in 将起作用,但如果您想检查类似的内容:搜索了 goog,那么如果 google 是开始于的公司,则应该使用 google这样的顺序。重要的是您如何在搜索表单中获取详细信息。我建议您不要通过输入文本进行输入,而是通过复选框进行输入,因为这将使您的生活更轻松,并且您也会很好地练习。
标签: php mysql sql codeigniter