how can I create an where in query that only check on field and ignore another fields? query is something like this:
but I can not figure out how to get phones from inner select and ignore c field.

select * from users where phone in
(
            SELECT phone, COUNT( id ) AS c
            FROM users
            GROUP BY phone
            HAVING c &gt;1
) and verified=true


I know I can do this like this:

select * from users where phone in
    (
        select t1.phone from (
                SELECT phone, COUNT( id ) AS c
                FROM users
                GROUP BY phone
                HAVING c &gt;1) t1
    ) and verified=true


But I think it should be cleaner way.
You could always do an inner join if you are looking for cleaner syntax.  Something like this?  But I wouldn't worry about it too much as long as the query is legible and the performance difference should be negligible.  

SELECT U.*
FROM users AS U
    INNER JOIN (
                SELECT T.phone
                    , COUNT(T.id) AS c 
                FROM users AS T
                GROUP BY T.phone
                HAVING c &gt; 1
                ) AS PhoneCount ON PhoneCount.phone = U.phone
WHERE U.verified=true;