在数据库的逗号列表中查找特定值

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!
        
    

【讨论】:

以上是关于在数据库的逗号列表中查找特定值的主要内容,如果未能解决你的问题,请参考以下文章

Excel:查找所有匹配值并放在逗号分隔列表中?

检查逗号分隔列表是不是包含特定数字[重复]

查找是不是在列表中找到具有特定属性值的元素

在列表中查找具有特定值的对象

在 Python 中查找逗号分隔列表中的第 N 个项目

在列表中查找特定值的每三个实例