gpt4 book ai didi

php - 使用 MySQL 和 PHP 搜索图 block 网格

转载 作者:行者123 更新时间:2023-11-30 01:02:39 24 4
gpt4 key购买 nike

我在 MySQL 中有一系列带有“位置”列的行,该列表示对象在二维 xy 网格上的位置。我想在表中搜索位置位于特定图 block 给定距离内的行。

例如,如果我在 [34,56] 的 10 个图 block 内运行搜索,则会返回“位置”值在 [24-44 和 46-66] 之间的任何行。

我对这个问题的解决方案是创建一个数组(使用 for 循环),其中包含该搜索词中所有可能的图 block ,然后这样查询 MySQL:

"SELECT * FROM table WHERE localcoordinate IN ('$rangearray')"

该解决方案工作正常,但非常消耗资源。我希望能够在数百或数千格的距离内运行多次搜索。谁能建议一种可能运行得更快的更好方法?

最佳答案

通过实现以下策略更改,我将资源消耗降低了 100 倍。

1) 我将 xy 坐标分成表中的两个字段。

2) 我使用“BETWEEN”函数在 MySQL 中进行 native 搜索。

最终的查询看起来像这样。您可以从查询中推断出数据结构。

SELECT * FROM table WHERE localcoordinateX BETWEEN $x-lo AND $x-hi AND localcoordinateY BETWEEN $y-lo AND $y-hi.

我一开始就应该想到这一点,但我没有。不过,仅仅发布到堆栈交换的行为就让我再次清晰地思考!

关于php - 使用 MySQL 和 PHP 搜索图 block 网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19967483/

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