mysql报错:Operand should contain 1 column(s)怎么修改呀

mysql报错:Operand should contain 1 column(s)怎么修改呀

select  lj03.rid as rid FROM lj03
LEFT JOIN lj001 ON lj001.rid=lj03.rid
LEFT JOIN lj04 ON lj04.rid=lj03.rid 
LEFT JOIN hdsj ON hdsj.rid=lj03.rid 
# 加上关键词条件
where
lj04.she_qu like '%沸腾节%'
and
lj04.she_qu like '%潮划算%'
and
lj04.she_qu like '%安妮Anne%'
and
# 加上女性这个条件
lj03.rid in (
    select * from lj03
where lj001.sex like '%女' 
or lj001.sex like '%小雌兔' 
or lj001.sex like '%女士' 
or lj001.sex like '%female' 
or lj001.sex like '%0'
);

最后后面的in那里报错

img

完整修改如下:

select  lj03.rid as rid FROM lj03
LEFT JOIN lj001 ON lj001.rid=lj03.rid
LEFT JOIN lj04 ON lj04.rid=lj03.rid 
LEFT JOIN hdsj ON hdsj.rid=lj03.rid 
# 加上关键词条件
where
lj04.she_qu like '%沸腾节%'
and
lj04.she_qu like '%潮划算%'
and
lj04.she_qu like '%安妮Anne%'
and
# 加上女性这个条件
lj03.rid in (
    select lj001.rid from lj001
where lj001.sex like '%女' 
or lj001.sex like '%小雌兔' 
or lj001.sex like '%女士' 
or lj001.sex like '%female' 
or lj001.sex like '%0'
);

https://blog.csdn.net/q290994/article/details/86081425

该回答引用GPTᴼᴾᴱᴺᴬᴵ
这个错误通常发生在SELECT语句中选择了多个列(column),但是在其他部分中使用了只能接受单个列的操作符或函数。根据你提供的SQL语句,错误可能是在子查询中。

具体来说,子查询中的SELECT语句需要指定要选择的列,而不是使用通配符*。所以你需要将子查询中的SELECT语句修改为:

SELECT lj03.rid FROM lj03
WHERE lj001.sex LIKE '%女' 
OR lj001.sex LIKE '%小雌兔' 
OR lj001.sex LIKE '%女士' 
OR lj001.sex LIKE '%female' 
OR lj001.sex LIKE '%0'


这样就只选择了lj03.rid这个列,而不是所有的列。