mysql从表中选择distinct(clientid)

时间:2013-10-18 16:26:47

标签: php mysql

我有一个我无法弄清楚的问题。  首先我做了这个

SELECT DISTINCT(ClientID) AS ID 
FROM table 
WHERE column4 IS NOT NULL AND TRIM(column4) <> '' 
ORDER BY ClientID ASC

效果很好但是我的问题出现在我从表中获得独特的clientid之后。 试图取出在第3栏或第4列中没有价值的其他独特的clientid

我确实尝试了这一点,但显然是错误的,因为我在那里得到了第3列和第4列中有价值的clientid

SELECT DISTINCT(ClientID) AS ID 
FROM table 
WHERE ClientID != '(SELECT DISTINCT(ClientID) 
                      FROM table 
                      WHERE column4 IS NOT NULL AND TRIM(column4) <> '' )' 
ORDER BY ClientID ASC

表格就像这样

Table
   ClientID - can be 2..3...4 times in the table
   ID       - unique id
   column3 - can be empty
   column4 - can be empty
   column5 - can be empty

2 个答案:

答案 0 :(得分:0)

Select distinct (clientid) as id From table Where length(column4) < > 0 and length(column3)< >0

要检查列是空还是空,请使用LENGTH()函数。

答案 1 :(得分:0)

WHERE ClientID != 'SELECT ...'不正确。子查询周围的引号将其转换为字符串,删除它具有的任何“查询”。你应该做的

WHERE ClientID!=(SELECT ....)

代替。或者最好是NOT IN,而不是!=