小编Bil*_*rim的帖子

将双嵌套查询转换为JOIN语句以及其他优化

我有这个查询非常具体,并返回我需要的.众所周知,mysql中的嵌套查询在运行时方面可能非常糟糕.如果有人可以帮助我将以下代码转换为JOIN声明,我将非常感激.

当然,欢迎并鼓励任何其他优化.

SELECT title 
FROM   exp_channel_titles 
WHERE  entry_id IN (SELECT rel_child_id 
                    FROM   exp_relationships 
                    WHERE  rel_id IN (SELECT field_id_202 
                                      FROM   exp_channel_data 
                                      WHERE  entry_id = 19971));
Run Code Online (Sandbox Code Playgroud)

谢谢!

mysql sql join nested-queries

7
推荐指数
1
解决办法
1485
查看次数

在多个函数中使用相同的大型数组而不是多余的正确方法?

我没有处理具体情况,所以请考虑更多的一般性问题.如果语言很重要,答案可能更倾向于PHP.

如果我在多个函数中需要大数组(或其他数据类型)的数据,但这不会改变,我应该如何使用该数据?例如,也许我有一个看起来像的数组

$states = array(
                "AL" => "Alabama",
                     ...
                "WY" => "Wyoming"
                );
Run Code Online (Sandbox Code Playgroud)

显然,这个阵列不需要很快改变.如果我有五个必须使用上述数组的函数,那么最佳解决方案是什么?我的三个想法是:

  • 将其声明为全局常量

这个似乎是最直接的,但是我谈过的一些人似乎建议不要使用全局变量.任何见解将不胜感激.

  • 将其传递给函数

这对我来说似乎是一个坏主意,因为它永远不会改变,函数参数应该是变量,对吧?更不用说必须将它传递给不使用它的函数,只是因为它可以被另一个函数使用.这似乎是一种糟糕的做法.

  • 是否由函数返回

这是一个我没有看过很多用过的东西,但是我已经习惯了几次将mysqli_connect()信息传递给多个函数.它工作得很好.这被视为不良做法吗?我应该吮吸它并使用全局常量吗?

我意识到使用全局常量听起来很明显,但我听过(和读过)不止一个咒语,"如果你宣布全局,你做错了"等等.任何人都可以解释为什么会这样吗?

谢谢你能给我的任何见解,伙计们.

php global-variables

1
推荐指数
1
解决办法
726
查看次数

标签 统计

global-variables ×1

join ×1

mysql ×1

nested-queries ×1

php ×1

sql ×1