Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak mogę postawić dwa warunki w posiadaniu klauzuli?

Jak udokumentowano w SELECT Składnia:

Innymi słowy, jest stosowany po operacja grupowania została wykonana (w przeciwieństwie do WHERE , który jest wykonywany przed dowolna operacja grupowania). Zobacz GDZIE vs MIEĆ .

Dlatego Twoje bieżące zapytanie najpierw tworzy zestaw wyników z następującego:

SELECT   COUNT(domain) AS `sum domains`, file
FROM     `table`
GROUP BY Number

Zobacz na sqlfiddle :

| SUM DOMAINS |      FILE |
---------------------------
|           2 | aaa.com_1 |
|           2 | bbb.com_1 |
|           1 | eee.com_1 |

Jak widać, wartości wybrane dla file kolumny są tylko jedną z wartości z każdej grupy — jak udokumentowano w MySQL Rozszerzenia do GROUP BY :

Twoje bieżące zapytanie przechodzi następnie do filtrowania tych wyników zgodnie z Twoim HAVING klauzula:

HAVING   COUNT(Number) > 1 AND file LIKE '%\_1'

Z wartościami file wybrane powyżej, każda grupa spełnia drugie kryterium; a pierwsze dwie grupy pasują do pierwszego kryterium. Dlatego wyniki pełnego zapytania są:

| SUM DOMAINS |      FILE |
---------------------------
|           2 | aaa.com_1 |
|           2 | bbb.com_1 |

Obserwujesz Twoje komentarze powyżej , chcesz filtrować rekordy w file przed grupowanie, a następnie filtruj otrzymane grupy pod kątem tych, które zawierają więcej niż jedno dopasowanie. Dlatego użyj WHERE i HAVING odpowiednio (i wybierz Number zamiast file aby zidentyfikować każdą grupę):

SELECT   Number, COUNT(*) AS `sum domains`
FROM     `table`
WHERE    file LIKE '%\_1'
GROUP BY Number
HAVING   `sum domains` > 1

Zobacz na sqlfiddle :

| NUMBER | SUM DOMAINS |
------------------------
|    222 |           2 |


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sortowanie według jakiejś kolumny, a także według rand() w MySQL

  2. Utwórz tablicę PHP z kolumny MySQL

  3. MySQL:NULL vs

  4. Jak znaleźć n-ty wiersz w MySQL

  5. gem mysql2 skompilowany dla niewłaściwej biblioteki klienta mysql