Selecting DISTINCT where not null in MySQL

distinct, mysql, null, select, sql

Solution

SELECT DISTINCT Name, ID FROM TestTable where Name <> ''
union all
SELECT Name, ID FROM TestTable where Name = ''

Problem

I've got a table that has, for example, `ID` and `Name`. There are multiple rows that contain blank names, but there also can be multiple rows with the same name. I'd like to select all `ID`s, counting each name only once (`DISTINCT`), but selecting ALL of the blanks. The following query naturally only selects ONE blank name. How can I select all the distinct names plus all of the blank names? ``` SELECT DISTINCT Name, ID FROM TestTable ```

Original source