sql 查询语句,遇到这样的麻烦,select * from A where A_id in (1,1,2,2,3)

2025-02-25 08:17:38
推荐回答(3个)
回答1:

你好,
select * from A where A_id in (1,1,2,2,3)=select * from A where A_id in (1,2,3)

这样的规则是没有任何问题的,如果你的数据表A表中的A_id中确实有5行数据,而A_id的值只有1,2,3 这三个数值并且数据行的其它列也是不一样的查出来就一定会是5行数据。如果你写的这个语句查不出5行数据那么请看看是否A表中存在相同值的行。
当然还有一种做法可以查询到5行值就是不要使用A_id而是使用5行值都不相同的列去做查询条件如:
select * from A where B=某某.... or B=某某这样的方式也可以
希望对你有所帮助!

回答2:

SELECT A.* FROM 
(
SELECT * FROM (SELECT 1 a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 2 UNION ALL SELECT 3)t
)
LEFT JOIN A ON t.a=A.A_id

回答3:

select * from A where A_id in (1,2,3)
union all
select * from A where A_id in (1,2)
order by id

这样?