Mysql
 sql >> база данни >  >> RDS >> Mysql

Оценка на кратни 'IN' изрази в клаузи 'WHERE' в mysql

Тази заявка ще върне редове, където b е или 5 или 7 , И c е 4 .

Какво имате предвид под „оценка по двойки?“

Актуализация:

Ще добавя още един ред към извадката:

 +----------+----------+----------+
 |    PK    |     b    |     c    |
 +----------+----------+----------+
 |     1    |     2    |     3    |
 +----------+----------+----------+
 |     2    |     5    |     4    |
 +----------+----------+----------+
 |     3    |     7    |     9    |
 +----------+----------+----------+
 |     4    |     7    |     4    |
 +----------+----------+----------+
 |     5    |     2    |     9    |
 +----------+----------+----------+

Ако искате да съпоставите целите набори, можете да използвате този синтаксис:

SELECT  *
FROM    table_name
WHERE   (b, c) IN ((2, 3), (7, 9))

Това означава:„връщане на всички редове, където b е 2 и c е 3 едновременно, ИЛИ b е 7 и с е 9 едновременно."

В примера по-горе тази заявка ще върне редове 1 и 3

Но ако пренапишете тази заявка по обратния начин, така:

SELECT  *
FROM    table_name
WHERE   b IN (2, 7)
        AND c IN (3, 9)

, това ще означава "връщане на всички редове, където b е или 2 или 7 , И c е или 3 или 9 ).

Това ще върне редове 1 , 3 и 5 , тъй като ред 5 удовлетворява условието за втората заявка, но не и за първата.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Средна разлика във времето в mysql

  2. PHP и MySQL с Highchart

  3. Защо NHibernate не поддържа пакетиране на MySql

  4. MySql sql рекурсивен цикъл

  5. Намерете липсващи пропуски в последователността mysql