我的 PHP 页面接受的参数之一是用户搜索查询。然后,应用程序接受该查询并执行 >100 个独立的 SELECT 语句,它们看起来完全像下面这样:
SELECT * FROM table1 WHERE user = 'query';
SELECT * FROM table2 WHERE user = 'query';
SELECT * FROM table3 WHERE user = 'query';
SELECT * FROM table4 WHERE user = 'query';
...etc...
是否有更快/更有效的方法来完成我想做的事情?例如。以某种方式将所有 select 语句组合成一个语句?我觉得有 100 个单独的查询进入我的数据库会比一个大型查询慢。我不知道如何组合它们,请帮助我。
最佳答案
您可以使用union all
运算符组合这些查询:
SELECT * FROM table1 WHERE user = 'query'
UNION ALL
SELECT * FROM table2 WHERE user = 'query'
UNION ALL
SELECT * FROM table3 WHERE user = 'query'
-- Etc...
话虽如此,您可能需要重新考虑您的数据库设计。如果总是一起查询这些表,也许应该将所有数据添加到一张表中。
关于php - 组合简单的、几乎相同的选择语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52979961/