从1个数据库中的100个表中选择

sq1bmfud  于 2021-06-18  发布在  Mysql
关注(0)|答案(4)|浏览(304)

我正在尝试从表1、表2、表100中选择id、说明、标题
假设我让它工作,对我来说把我所有的表合并到phpmyadmin更好吗?
问题是我有大约100张不同类别的书的table,所以我想把它们分开放在各自的table上。
我正在尝试做一个搜索引擎,搜索整个数据库中的所有书籍。所有表都有相同的列名。
所以我真正要做的就是在整个数据库的表中搜索id,description,title。我的搜索工作,只是我只能搜索一个表和每一个解决方案,我发现网上只有真正有效地与2或3表。
提前谢谢。

xxhby3vn

xxhby3vn1#

我建议将一个表a保留为id、description、title和category,并创建另一个包含categories的表b。表a必须有一个带有表类别的外键。然后创建一个查询来检索具有特定类别的书籍。
例子:

SELECT id, description, title, category FROM books WHERE category = "drama"
cbeh67ev

cbeh67ev2#

最好的方法是重新设计数据库,将所有内容放入一个表中,并添加一个“category”列。
同时,可以创建一个视图,将表与类别的附加列合并。

ebdffaop

ebdffaop3#

我建议重新设计模型,将这100个表统一为1,并添加一个新的列,其中包含category,但包含整数值,而不是字符串值。通过这种方式,可以使用其他字段(id、description、title)索引category列,以加快查询速度。这种解决方法更容易避免以后的痛苦。

tvmytwxo

tvmytwxo4#

我认为这说明了这里大多数人提到的数据库设计本身。根据你手头的时间长短,你有几个选择:
(短期/快速修复)包含所有当前字段和类别的中心表,作为区分当前表的标志。所以你的insert类似于“insert into newtable”( ID , AssetID , ServiceID , Category )从表1中选择id、描述、标题、“小说”
如果表的名称是递增的,比如table1、table2到table100,那么可以编写一个快速的php脚本,在每次迭代时对表递增,直到最后一个表为止,该脚本将遍历insert循环。
从长远来看,您可以投资一个json字段来存放所有其他数据,不包括与单个条目相关的键

相关问题