sql >> Databasteknik >  >> RDS >> Mysql

mysql OCH-sats i samma kolumn flera gånger

Prova detta:

SELECT property_id FROM amenities
WHERE amenity_name IN ('parking', 'elevator')
GROUP BY property_id 
HAVING COUNT(amenity_name) >= 2

Här är vad som händer...

Skaffa först listan över fastighets-ID:n som har de bekvämligheter du är intresserad av:

SELECT property_id FROM amenities WHERE amenity_name IN ('parking', 'elevator')

Begränsa sedan listan så att den bara inkluderar de egendoms-ID:n som har mer än en bekvämlighet. Gruppering efter egenskaps-id grupperar resultaten i unika grupper baserat på vilket egenskaps-id de tillhör. Sedan räknar vi helt enkelt antalet amenity_names i varje grupp och kontrollerar om det är 2 eller fler.

GROUP BY property_id HAVING COUNT(amenity_name) >= 2

Ett antagande i koden ovan är att du inte kommer att ha samma amenity_name kopplat till ett property_id mer än en gång. För att eliminera problem relaterade till det, ändra HAVING sats för att inkludera DISTINCT att sålla bort dubbletterna, men lägg inte till det om du inte behöver det.

GROUP BY property_id HAVING COUNT(DISTINCT(amenity_name)) >= 2



  1. Django och mysql problem på Mavericks

  2. Hur MID()-funktionen fungerar i MySQL

  3. Stora tabeller och analys i MySql

  4. Effektiv lagring av tidsseriedata:mySQL eller platta filer? Många tabeller (eller filer) eller frågor med WHERE-villkor?