【发布时间】:2018-12-13 01:15:06
【问题描述】:
如何完成下面的代码?我正在尝试从数据库中获取select news,而locations 可以是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 而没有22,它也会得到newsLocation。
$locationsToGet = '22,88';
$db->query("SELECT * FROM news WHERE newsLocation IN($locationstoGet)");
我希望我解释清楚了。
【问题讨论】:
-
你为什么不规范化你的数据?这让很多事情变得更容易
-
最好的方法是像 nico 评论的那样标准化数据库。我能想到的其他方法是使用 WHERE ,LIKE 组合或使用需要全文索引的全文搜索(MATCH,AGAINST)。
-
如果您在问题中添加数据库结构,它会提供更多洞察力。
标签: php mysql sql explode implode