我正在尝试在数据库中查找ID。我需要找到以下内容:
17
,17
,17,
确保找不到以17开头的其他ID(即170、171、173等)。目前,我已经设置了以下变量以放入mysql查询中:
$userid = '' . $row['userid'] . ',%';
$userid2 = '%,' . $row['userid'] . '%';
$userid3 = '' . $row['userid'] . '%';
但是我发现我也在输入id170。我认为每当id 170放在字符串末尾时,它就会发生。您能提供的任何帮助,我将不胜感激。这是我正在使用的查询:
"SELECT formid, draft, activestatus
FROM forms
WHERE notifyusers like '$userid'
AND activestatus != '3' OR notifyusers like '$userid2' AND activestatus != '3'
OR notifyusers like '$userid3' AND activestatus != '3'";
最佳答案
您可以使用FIND_IN_SET函数,如下所示:
SELECT formid, draft, activestatus
FROM forms
WHERE
(FIND_IN_SET('17', notifyusers)>0 AND activestatus != '3')
OR ...
或者您可以通过以下方式使用LIKE:
WHERE
CONCAT(',', notifyusers, ',') LIKE ('%,17,%')