mysql - 搜索查询 - 邮政编码、公司名称或位置

标签 mysql sql database

我对 SQL 查询有点困惑。

用户应该能够搜索邮政编码、公司名称或位置

我有下表:

公司表

companyid |     name        | location
      1      Shop One           New York
      2      Shop Two           France

postcode_areas 表

postcode | companyid
     BB1       1
     BB3       1
     BB1       2

因此,如果用户输入 BB1,那么它应该显示结果“Shop One”和“Shop Two”。

如果用户输入公司名称或位置 - 它只会从公司表中搜索。

最佳答案

使用两个表的联接并对所有字段进行 OR 搜索:

SELECT DISTINCT c.* FROM company c JOIN postcode_areas p USING (companyid)
WHERE c.name = "$QUERY" OR c.location = "$QUERY" OR p.postcode = "$QUERY";

您可以使用LIKE "%$QUERY%" 来获取部分查询的结果。

关于mysql - 搜索查询 - 邮政编码、公司名称或位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6069933/

相关文章:

database - 触发器前的 DB2

c# - 数据未写入MYSQL数据库

php - mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows 等...期望参数 1 是资源

mysql - 计算移动平均线 MySQL?

sql-server - 在 SQL Server 2005 中创建新的数据库用户

java - 从存储过程中获取输出参数而不调用 execute()

mysql - 汇率应用程序的数据库模式

mysql - 如何创建可在集合表达式中使用的用户定义变量?

php - 性能问题(缓存)- 更快地从数据库进行计算或存储它们

mysql - 如何在 MySQL 中合并两个部分重叠的列表?