好吧,我对我想做的事情是否有可能感到有点困惑。
在数据库中,字段'slot'包含表单中的信息(第一部分:第二部分:第三部分),其中:是分隔符。
我需要将$matchid
与该字段的第一部分进行比较。所以我们说slot1 = 100:200:300
我需要检查$matchid
是否等于数据库中任何字段的第一部分
$matchid = mysql_fetch_row(mysql_query(
"SELECT `matchid`
FROM `matches`
WHERE `winner` = 0 AND
(`slot1` OR `slot2` OR `slot3` OR `slot4` OR `slot5`
OR `slot6` OR `slot7` OR `slot8` OR `slot9` OR `slot10`) = $matchid"
));
如果$matchid
最初为100且slot1 = 100:200:300
,则查询将不返回任何内容,但我需要将其作为匹配项。
我不知道我是否已经正确解释了这一点,但我们走了。我尝试使用爆炸但是没有真正起作用
答案 0 :(得分:0)
要使其与现有数据结构一起使用,您可以执行以下操作:
SELECT `matchid` FROM `matches`
WHERE `winner` = 0 AND (
`slot1` LIKE "{$matchid}:%"
OR `slot2` LIKE "{$matchid}:%"
/* etc, etc... */
)
话虽如此,如果将插槽分隔到自己的表中,您将获得更清晰的查询。 另外,要么转义$ matchid,要么使用准备好的声明。
答案 1 :(得分:0)
尝试:
$matchid = mysql_fetch_row(mysql_query("SELECT `matchid` FROM `matches` WHERE `winner` = 0 AND (`slot1` OR `slot2` OR `slot3` OR `slot4` OR `slot5` OR `slot6` OR `slot7` OR `slot8` OR `slot9` OR `slot10`) = ".$matchid));
注意点连接字符串。通过这种方式,php传递了$ matchid的实际值,而在你的代码中你传递了字符串“$ matchid”。
如果$ matchid是一个整数,你必须在查询中使用strval($ matchid)。