具有這種兩個用戶:顯示於一個簡單的MySQL查詢重複值
ID = 143
用戶=用戶1
----
ID = 91
用戶=用戶2
這個簡單的查詢:
SELECT name FROM users where id IN (143,143,91);
它有兩個結果:
User 1
User 2
是否有任何方法可以返回重複的值呢?我所需的輸出是:
User 1
User 1
User 2
具有這種兩個用戶:顯示於一個簡單的MySQL查詢重複值
ID = 143
用戶=用戶1
----
ID = 91
用戶=用戶2
這個簡單的查詢:
SELECT name FROM users where id IN (143,143,91);
它有兩個結果:
User 1
User 2
是否有任何方法可以返回重複的值呢?我所需的輸出是:
User 1
User 1
User 2
我想你想要的是UNION ALL
:
SELECT name FROM users where id = 143
UNION ALL
SELECT name FROM users where id = 143
UNION ALL
SELECT name FROM users where id = 91
一個簡單的查詢將不會返回相同的143
兩次。
據我所知,創建另一個表中插入所有要提取ID:
CREATE TABLE TUSERS (ID INT, NAME VARCHAR(20));
INSERT INTO TUSERS VALUES (91, 'User2');
INSERT INTO TUSERS VALUES (143, 'User1');
CREATE TABLE TMP01 (ID INT);
INSERT INTO TMP01 VALUES(143);
INSERT INTO TMP01 VALUES(143);
INSERT INTO TMP01 VALUES(91);
SELECT A.*
FROM TUSERS A
RIGHT JOIN TMP01 B ON A.ID=B.ID;
輸出:
ID NAME
143 User1
143 User1
91 User2
的IN
列表僅僅是用於過濾現有行。如果你想要所有的值,那麼建議使用外連接。您可以即時生產IN
列表:
select u.name
from (select 143 as id union all
select 143 union all
select 91
) ids left join
users u
on u.id = i.id;
號您想要實現什麼? –
IS標識是唯一的或主鍵 – iamsankalp89