【发布时间】:2017-03-28 14:06:57
【问题描述】:
假设我有一个包含 4 个表的数据库:
- 个人电脑、笔记本电脑、平板电脑、智能手机
每个表都包含以下列:
- id、品牌、型号
如何使用单个查询来显示基于用户键入的品牌或型号的所有表中的所有结果?在伪代码中,是这样的:
SELECT *
FROM {all tables}
WHERE {brand or model} LIKE %user_search%;
这样用户就可以通过输入品牌或型号来搜索任何设备。例如。键入 apple 将显示所有 Apple 智能手机和平板电脑。键入型号将显示所有具有该型号的设备,即使是来自不同品牌的设备。
【问题讨论】:
-
这是一个非常糟糕的表设计,如果将其标准化,查询会容易得多。但你应该看看
UNION -
@Siyual 是的,我知道这是糟糕的设计,这只是一个了解其工作原理的示例。在实际情况中,我当然会使用单个表,其中“类型”列设置为 pc、笔记本电脑、平板电脑或智能手机。还是谢谢你。
标签: mysql sql select search multiple-tables