I would like to ask for ways to solve this MySQL issue.
Currently, I have this select query
x
SELECT username, friend_username from friends
WHERE (username = "apple" or friend_username = "apple");
and it shows this Friends Table (below).
Friends Table
------------------------------
| username | friend_username |
------------------------------
| apple | orange |
| apple | pear |
| durian | apple |
------------------------------
But I would like to execute a select query to make it look like this (below).
------------
| username |
------------
| orange |
| pear |
| durian |
------------
Is there any possible ways to achieve this? Appreciate the help! Thank you.
Advertisement
Answer
I would write this as:
select case when username = 'apple' then friend_username else username end username
from friends
where 'apple' in (username, friend_username);
The where
clause uses in
to filter on rows where either username
or friend_username
is equal to 'apple'
. Then, the case
expression in the select
clause displays the “other” column.