Mysql 主键搜索的多个结果
我的MySQL查询一直存在问题。我目前正在尝试制作一个程序,该程序将随机填充一个桥接表,其中包含特定预订的魔术 在与程序斗争了几个小时之后,我将问题缩小到了这行代码Mysql 主键搜索的多个结果,mysql,database,Mysql,Database,我的MySQL查询一直存在问题。我目前正在尝试制作一个程序,该程序将随机填充一个桥接表,其中包含特定预订的魔术 在与程序斗争了几个小时之后,我将问题缩小到了这行代码 SELECT * FROM avaliable_tricks WHERE table_id = FLOOR(RAND() * 144)+1; 我尝试使用随机生成的数字来检索技巧的信息,该数字将等于它的主键。它应该只抓取一个条目,因为它使用主键,主键是唯一的值。事实上,它在没有押韵或理由的情况下抓取0、1、2或更多条目。它只返回4行
SELECT *
FROM avaliable_tricks WHERE table_id = FLOOR(RAND() * 144)+1;
我尝试使用随机生成的数字来检索技巧的信息,该数字将等于它的主键。它应该只抓取一个条目,因为它使用主键,主键是唯一的值。事实上,它在没有押韵或理由的情况下抓取0、1、2或更多条目。它只返回4行,主键为2、5、47和107
我想不出为什么它不起作用,除了它是一个随机生成的数字
我的代码中是否存在固有的错误
编辑:
这是我临时桌上的一张桌子
table_id int(11) NO PRI auto_increment
show_trick_id int(11) YES
trick_length int(11) YES
recommended_age int(11) YES
RAND()对表中的每一行执行一次,并生成不同的值。如果只想得到一个随机数,可以使用子查询(派生表)
或者只使用一个变量
SET @rnd = SELECT FLOOR(RAND() * 144)+1;
SELECT *
FROM avaliable_tricks
WHERE table_id = @rnd;
如果您包括如下所示的表格的“描述”,您可能会得到更好的答案:您确定是
表格id
是可用技巧的主键吗?pk应该是callid
或available\u tricks\u id
这是我正在测试的临时表。这绝对是主键,因为我在最后一个小时内制作了表格。这句话超出了范围。请创建一个简单但完整且可复制的示例。请看这里:-rand()将为每一行生成一个新值。
SET @rnd = SELECT FLOOR(RAND() * 144)+1;
SELECT *
FROM avaliable_tricks
WHERE table_id = @rnd;