【发布时间】:2009-09-21 18:27:11
【问题描述】:
我正在尝试使用多个参数在 MySQL 中构造一个搜索查询,但我不能完全正确。
我从表单接收搜索参数,并使用它们动态构建我的查询。
这里是一些背景信息:
我有一个包含工作信息的 MySQL 数据库。我要搜索四列:
- 职位名称
- 工作类型
- 职位描述
- 工作地点
职位名称:这是职位信息的 1-5 字标题。根据输入的方式可能会有所不同
工作类型:这是工作类型的三个字母代码。
职位描述:这是对职位和职责的简短描述
位置:这是一个城市或城镇
用户将使用搜索表单进行搜索。搜索表单由三部分组成。两个文本字段,“关键字”和“位置”;和一个列出大约 20 种工作类型的下拉框。这将允许他们在职位列表的三个字母代码之间进行选择。
我想从表单的这三个部分中获取信息,并使用它们来搜索我的数据库并返回最准确的记录。我已经尝试了几次查询迭代,它要么返回很多不相关的记录,要么没有返回足够多的相关记录。我也无法解释用户故意将表单的某些部分留空的原因。
我当前的查询看起来像这样:
选择 * FROM my_jobs_table WHERE category = '用户指定的工作类型' OR job_title LIKE '用户指定的工作关键字' OR job_description LIKE '用户指定的工作关键字' OR location LIKE "% User Specified Job Location%"这对我不起作用。有什么建议吗?
【问题讨论】:
-
jobtype 是 int 吗?如果是这样,您需要删除查询中的 ''。
-
Jonas,jobtype 甚至不是 OP 查询的一部分。他清楚地说这是一个 3 个字母的代码,而不是 int。另外,mysql不关心你是否在数字周围加上引号,所以没关系。
-
维克多,你能定义“不工作”吗?
-
是的,“不起作用”是指即使我搜索特定记录,查询也会返回过于广泛的结果选择。例如。如果我在医疗保健 (HEA) 类别下搜索科罗拉多州的护理工作,查询将返回科罗拉多州的每个工作、每个护理工作以及 HEA 类别中的每个工作。我只希望它返回具有 HEA 类别、关键字 Nursing 和位置 Colorado 的工作。
标签: mysql