0

おおよそこのような注文のデータベースがあります

   ORDER ID | AMOUNT | FIRSTNAME | LASTNAME
     1         50        JOHN       SMITH
     2         60        PAUL       JOHNSON
     3         20        FRANK      CAMERON
     5         80        JOHN       JOHNSON

私は彼らの注文を引き出すために必要な名前のリストを持っています。この例では、「JOHNSMITH」と「PAULJOHNSON」と言います。

私はこのようなクエリを試しました

SELECT * FROM ORDERS WHERE FIRSTNAME IN ("JOHN", "PAUL") AND LASTNAME IN ("SMITH", "JOHNSON")

しかし、それが含まれているので、明らかにそれは私が望んでいたようには機能しませんでした。どうすればいいのかわかりませんが、次のようなものを検索する必要があります

WHERE FIRSTNAME,LASTNAME IN ("JOHN","SMITH";"PAUL","JOHNSON")

また

WHERE (FIRSTNAME,LASTNAME) IN {("JOHN","SMITH")("PAUL","JOHNSON")}

明らかに私はSQLについてほとんど知らないので、何を検索するかについての構文と用語に固執していますか?

4

2 に答える 2

3

OR次のようにロジックを分離できます。

SELECT * FROM ORDERS
WHERE 
(FIRSTNAME = "JOHN" AND LASTNAME = "SMITH")
OR
(FIRSTNAME = "PAUL" AND LASTNAME = "JOHNSON")
于 2012-11-30T02:11:24.267 に答える
3

あなたはこのようなことをすることができます

SELECT *
FROM ORDERS
WHERE concat(firstname, ' ', lastname) IN ('JOHN SMITH','PAUL JOHNSON')
于 2012-11-30T02:13:53.670 に答える