我遇到了以下问题:
当我执行下面的语句时,我得到一个错误,因为它返回了不止一行
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 ) );
我在 (select pesonID from person...) 语句中收到错误,我正在尝试使用“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
,因为您似乎是在手动添加它们并且您知道它们已经存在。
总喜欢字段也已修复,但您的语法不正确。
关于MySQL any 关键字用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20321151/