$ participants是MYSQL中的VARCHAR,看起来像这样的q1qq2qq3qq4qq5qq6q。我要的是有一个if语句
如果找到q$_SESSION["UserID"]q,则执行该命令,也就是说,我希望它查找$participants中的某些输入,例如q2q
我不知道该怎么写$_SESSION["UserID"]是MYSQL数据库中的id列之一,因此等于2之类的数字。

我在php中尝试了以下内容

if(strpos($participants, q$_SESSION["UserID"]q)){
    echo "succeeded";
};


但这不起作用。此外,我也希望能够将q$_SESSION["UserID"]q删除。我试过了

$participants = preg_replace("q{$_SESSION["UserID"]}q", "", $participants);


但这不起作用。有想法吗?

最佳答案

您可以执行以下操作:

if(strpos($participants, "q" . $_SESSION["UserID"] . "q") !== FALSE){
    echo "succeeded";
};


或者您可以在MySQL中使用LIKE语句,例如

SELECT * FROM table WHERE participants LIKE "%q2q%";

但是,正如RiggsFolly所说,这是一种存储数据的可怕方式。创建一个具有主键,主表外键和参与者ID的参与者表。

例如。

participantinstanceid int primary key
instanceid int foreign key -> Your instance table
participantid int foreign key -> participant table


这样,您可以仅基于instanceid查询表以获取所有参与者。如果您需要进一步的帮助,我很乐意为您提供更好的数据库结构。

10-05 20:11