MySQL query with multiple 'OR' statements

♀尐吖头ヾ 提交于 2019-12-02 19:53:12

问题


I have a query, that I have tested outside of PHP directly on SQL and still getting the same problem

The idea being that $currentArtist is sent through using the GET method, where this value matches the value in the event_artist columns the information is displayed.

SELECT 
            *
        FROM
            `".DBN."`.`events`
        WHERE
            `event_artist1` OR `event_artist2` OR `event_artist3` = '".$currentArtist."'

    ";

The problem I have is that it is completely ignoring the WHERE part of the query. It just returns the complete table results and not the results that match $currentArtist.

I have tested $currentArtist and it works fine. I'm at a loss as to how to get the complete statement to work.

I've tried surrounding the OR statements in brackets as in:

(`event_artist1` OR `event_artist2`...) = '".$currentArtist."'

This only returns a result if the $currentArtist is equal to "1" being the first person in the Artists table where their information is stored.

Any help would be greatly appreciated.


回答1:


SELECT *
  FROM events e
 WHERE '$currentArtist' IN (e.event_artist1,e.event_artist2,e.event_artist3);



回答2:


try

SELECT * FROM `".DBN."`.`events` WHERE
            `event_artist1`= '".$currentArtist."' OR `event_artist2`= '".$currentArtist."' OR `event_artist3` = '".$currentArtist."'";



回答3:


SELECT *
FROM `".DBN."`.`events`
WHERE `event_artist1` = '".$currentArtist."' 
OR `event_artist2` = '".$currentArtist."' 
OR `event_artist3` = '".$currentArtist."'
";

Hope this helps.



来源:https://stackoverflow.com/questions/22225820/mysql-query-with-multiple-or-statements

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!