Использование OR
является решением (но для этого необходимо повторить параметр три раза):
SELECT col4 FROM mytable col1 =:myvalue OR col2 =:myvalue OR col3 = :myvalue;
Одним из решений для сокращения запроса (и передачи уникального параметра) является использование IN
:
SELECT col4 FROM mytable WHERE :myvalue IN (col1, col2, col3)
Если вы хотите узнать, какой столбец соответствует, то это будет длиннее. В MySQL вы можете сделать:
SELECT
col4,
col1 = :myvalue is_col1,
col2 = :myvalue is_col2,
col3 = :myvalue is_col3
FROM mytable
WHERE :myvalue IN (col1, col2, col3)
Это добавит три столбца в набор результатов: is_col1
, is_col2
, is_col3
;столбцы, которые соответствуют, будут иметь значение 1
, другие будут отображаться 0
.