在数据库的逗号列表中查找特定值
Posted
技术标签:
【中文标题】在数据库的逗号列表中查找特定值【英文标题】:Find specific value in comma list in database 【发布时间】:2013-06-21 17:26:39 【问题描述】:在我的一个表中,我有一列,其中有一个以逗号分隔的已购买该项目的用户列表。 IMAGE
我如何阅读列表并运行 php 脚本来查找登录的用户(存储在会话中)是否在该列表中。例如,我如何查看登录用户(MTNOfficial)是否在列表中。我认为它是一个带有 mysql CONCAT 或 FIELD_IN_SET 之类的 php if 语句。
谢谢
【问题讨论】:
我需要它在一个 php if 语句中说如果登录的用户在列表中,那么,否则.... 请提供您的代码,而不是您尝试的解释。 【参考方案1】:使用FIND_IN_SET() 查找包含您的用户的记录
select *
from your_table
where find_in_set('MTNOfficial', usersBought) > 0
【讨论】:
如何检查用户是否存在于 php if 语句中 您可以在 Stack Overflow 上提出另一个问题。但是,当您确实提供上下文和详细信息时,您想做什么以及遇到困难的地方。【参考方案2】:获取逗号分隔的列表,然后尝试使用php函数explode()获取一个可以循环的数组。
http://php.net/manual/en/function.explode.php
$target = "MTNOfficial";
$query = "select usersBought from table_name";
$result = mysql_query($query);
while ($row = mysql_fetch_array($result))
$users = explode("," $row['usersBought']);
// may want to trim() here
for ($i = 0; $i < count($users); i++)
if ($users[i] == $target)
//we found him!
【讨论】:
以上是关于在数据库的逗号列表中查找特定值的主要内容,如果未能解决你的问题,请参考以下文章