我有一个电影数据库,其中有多列,其中有4列。

director_surname |  director_firstname | producer_surname |  producer_firstname |
---------------------------------------------------------------------------------
    frost        |    phil             |    wilson        |    john             |

    brendon      |    john             |    lee           |    tommey           |

    wilson       |    mark             |    allen         |    jill             |


我现在想做一条选择语句,在姓氏列中查找名称,然后检查名字列中的值。

因此,如果搜索是威尔逊,约翰,我只想带回那一行。到目前为止,我已经有了,这对于选择姓氏来说是很好的。

SELECT * FROM films
WHERE CONCAT(director_surname, producer_surname)
LIKE '%wilson%';


这是我有点卡住的地方。我尝试了AND语句,但这也会带回以john为名字的所有行。我认为ORDER BY IF语句可以做到,但是我可以使它工作。

预先感谢您的任何想法。

最佳答案

SELECT
    *
FROM
    films
WHERE
    (
        director_sirname = 'wilson'
        AND director_firstname = 'john'
    ) OR
    (
        producer_sirname = 'wilson'
        AND producer_firstname = 'john'
    )
;

09-27 19:08