sql >> Databasteknik >  >> RDS >> Mysql

Hur väljer jag flera värden i samma kolumn?

Vad sägs om att använda IN istället

SELECT  `salesorder`,
        `masterproduct`,
        `family`,
        `birthstamp`,
        `duedate`, 
        COUNT( * ) AS `total` 
FROM    `report` 
WHERE   `birthstamp` BETWEEN '$startDT' AND '$endDT' 
AND     `family` IN ('Software_1Y','XI_1Y','PI_1Y')
GROUP BY    `salesorder`,
            `masterproduct`,
            `family`,
            `duedate`;

Anledningen till att inga värden returneras är på grund av detta avsnitt

AND `family` = 'Software_1Y' 
AND `family = 'XI_1Y' 
AND `family` = 'PI_1Y'

family kan inte vara alla 3 värdena samtidigt, men det kan vara 1 av de 3 värdena.

Det är därför du skulle använda IN.

Ett annat sätt att se på det skulle vara att använda OR, men det blir riktigt långrandigt.



  1. Hur EXTRACTVALUE() fungerar i MariaDB

  2. Varför registreras MySQL för JDBC genom att anropa Class.forName(com.mysql.jdbc.Driver)?

  3. Närvarorapport i MySql

  4. SQL-injektion som tar sig runt mysql_real_escape_string()