我遇到以下问题:
当我执行以下语句时,由于返回多行而收到错误
INSERT INTO artist
(personid,
musicgenreid,
totallikes)
VALUES ( (SELECT personid
FROM person
WHERE firstname = 'Joe'
AND middlename = ''
AND lastname = 'blow'),
(SELECT musicgenreid
FROM musicgenre
WHERE musicgenreid = 4),
( totallikes = 328374 ) );
我在(从person中选择pesonID ...)语句中遇到错误,并且尝试使用'any'关键字来捕获任何行,但似乎无法正常工作。我已经尝试过几乎可以想到的当前查询和“ any”的所有排列,但是它不起作用。我是否应该尝试其他解决方案,或者由于某种原因我只是错过了分数?
最佳答案
看来您正在尝试执行以下操作:
INSERT INTO artist (personid, musicgenreid, totallikes)
VALUES (
(SELECT personid FROM person
WHERE firstname = 'Joe' AND middlename = '' AND lastname = 'blow'
ORDER BY RAND()
LIMIT 1
),
4,
328374
);
这将为您提供一个匹配给定条件的随机
personid
。查询中的
musicgenreid
将是null
或4
。我将其强制为4
,因为您似乎正在手动添加它们,并且您知道它们已经存在。总点赞字段也固定,但是您的语法不正确。