gpt4 book ai didi

mysql - 围绕设计的数据库定义查询

转载 作者:行者123 更新时间:2023-11-29 11:18:20 25 4
gpt4 key购买 nike

我有一个包含大量数据的数据库,虽然我没有参与设置它,但它是我必须使用的。

该数据库中有一个查找表。但是,该表没有与任何其他表的链接。它基本上采用以下形式

ID   |  input       |   table_name  |  
-------------------------------------
1 | Movie | movie_tbl |
2 | Cartoon | cartoon_tbl |
3 | Animation | cartoon_tbl |
4 | Audio | audio_tbl |
5 | Picture | picture_tbl |

表格比上面大很多,但是结构如上。那么发生的事情就是有人访问我的网站。在这里,他们有一个输入字段。假设他们输入 Movie,然后调用上表来查找 Movie 的输入。然后它获取需要查找的表。我想查询会类似于

SELECT table_name FROM lookup_table WHERE input LIKE Movie;

现在应该返回 movie_tbl。我现在知道我需要在 movie_tbl 中搜索 Movie 并返回其行的所有数据。所以 movie_tbl 可能是这样的(数据将是某种类型的数据,并且列名称不同)

ID   |  input       |   col_1  |  col_2  |  col_3  |  
----------------------------------------------------
1 | Movie | data | data | data |
2 | Cartoon | data | data | data |
3 | Animation | data | data | data |
4 | Audio | data | data | data |
5 | Picture | data | data | data |

所以现在我的查询将是这样的

SELECT * FROM movie_tbl WHERE input LIKE Movie;

现在表中有数万行数据。我真正的问题是上述是否有效?然而,根据给我的数据库,我看不到任何其他方法可以做到这一点(我无法触摸数据库)。我可以做些什么来提高效率吗?

任何建议表示赞赏

谢谢

最佳答案

为什么要检查第二个表中的输入?您已经过滤了第一个表中的输入:

从lookup_table中选择table_name,其中输入LIKE电影;

在这种情况下,您不必进行 2 个查询。只要第二个就足够了。或者只是将电影数据放在第二个表中,并在卡通、动画等单独的表中。因为这样您就不会访问“WHERE”子句,只需:

SELECT * FROM movie_tbl;

第二个建议:使用 = 代替 LIKE。如果您知道确切的输入字符串,则无需进行模式匹配。

关于mysql - 围绕设计的数据库定义查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39376885/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com