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那里报错
完整修改如下:
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这个列,而不是所有的列。