php - 组合简单的、几乎相同的选择语句

标签 php mysql sql select

我的 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/

相关文章:

php - 如何通过curl传递包含特殊字符的数据

php - 从模型中获取结果,按列总和排序

两个select的Mysql连接

大量插入的 SQLite 批量提交与一次性提交

php - 我是否破坏了以下处理 3 种(人类)语言的 php 数组中的任何 "php good practice"?

php - 对所有子域使用一个 session

mysql - 连接mysql中的两列

php - 在 PHP 中的同一表单上需要两个下拉列表

sql - 错误: "email" is not a known variable

mysql - 是否仅当 DATETIME 在某个时间间隔小于 NOW() 时才可以执行操作?