gpt4 book ai didi

php - MySQL PHP 选择 "X,Y"位于 X,Y,Z 中的位置

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

如何完成下面的代码?我正在尝试从数据库中选择新闻位置(可以是23,22,88,90位置代码)。我知道你可以执行 IN('23', '22', '88', '90') 但问题是,我的位置是一个字符串,所以它的结果是 IN ('23,22,88,90') 我相信。

如何扩展位置字符串并选择所有或任何位置(包括字符串中的位置)?因此,在数据库中,newsLocations 可能是 22 23 22,90 23,80,90 90。如果这有道理吗?因此,如果 $locationstoGet 仅具有 22,88,90,即使结果只是 88,90,它也会获取 newsLocation 没有 22

$locationsToGet = '22,88';
$db->query("SELECT * FROM news WHERE newsLocation IN($locationstoGet)");

我希望我解释得很好。

最佳答案

我在另一个网站上看到了回复 here

所以我会根据您的情况调整解决方案。将locationsToGet 更改为数组,并使用implode 函数为IN 子句生成正确的语法。

$locationsToGetArr = array('22','88');
$locations = "'".implode("','",$locationsToGetArr)."'"; //this should output '22','88'
$db->query("SELECT * FROM news WHERE newsLocation IN($locations)");

此解决方案假设您的数据库结构是这样的

+--------+--------------+
| news | newsLocation |
+--------+--------------+
| 1 | 88 |
| 1 | 22 |
| 2 | 22 |
| 2 | 88 |
+--------+--------------+

但是如果您将数据存储为以下内容

    +--------+--------------+
| news | newsLocation |
+--------+--------------+
| 1 | 88,22 |
| 2 | 22,88 |
+--------+--------------+

除了从新闻表中选择所有内容并让 PHP 过滤位置之外,您没有太多选择。这不是一个非常有效的方法。

关于php - MySQL PHP 选择 "X,Y"位于 X,Y,Z 中的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51176333/

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