我遇到以下问题:

当我执行以下语句时,由于返回多行而收到错误

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将是null4。我将其强制为4,因为您似乎正在手动添加它们,并且您知道它们已经存在。

总点赞字段也固定,但是您的语法不正确。

08-19 04:29