我有一个查询,我已经在PHP之外直接在SQL上测试并且仍然遇到同样的问题
这个想法是$ currentArtist是通过使用GET方法发送的,其中此值与显示信息的event_artist
列中的值匹配。
SELECT
*
FROM
`".DBN."`.`events`
WHERE
`event_artist1` OR `event_artist2` OR `event_artist3` = '".$currentArtist."'
";
我遇到的问题是它完全忽略了查询的WHERE
部分。它只返回完整的表结果,而不是与$currentArtist
匹配的结果。
我测试了$currentArtist
,它运行正常。我不知道如何让完整的陈述发挥作用。
我已经尝试围绕括号中的OR
语句,如下所示:
(`event_artist1` OR `event_artist2`...) = '".$currentArtist."'
如果$currentArtist
等于" 1"是艺术家表中第一个存储信息的人。
非常感谢任何帮助。
答案 0 :(得分:6)
SELECT *
FROM events e
WHERE '$currentArtist' IN (e.event_artist1,e.event_artist2,e.event_artist3);
答案 1 :(得分:0)
试
SELECT * FROM `".DBN."`.`events` WHERE
`event_artist1`= '".$currentArtist."' OR `event_artist2`= '".$currentArtist."' OR `event_artist3` = '".$currentArtist."'";
答案 2 :(得分:0)
SELECT *
FROM `".DBN."`.`events`
WHERE `event_artist1` = '".$currentArtist."'
OR `event_artist2` = '".$currentArtist."'
OR `event_artist3` = '".$currentArtist."'
";
希望这有帮助。