Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 主键搜索的多个结果_Mysql_Database - Fatal编程技术网

Mysql 主键搜索的多个结果

Mysql 主键搜索的多个结果,mysql,database,Mysql,Database,我的MySQL查询一直存在问题。我目前正在尝试制作一个程序,该程序将随机填充一个桥接表,其中包含特定预订的魔术 在与程序斗争了几个小时之后,我将问题缩小到了这行代码 SELECT * FROM avaliable_tricks WHERE table_id = FLOOR(RAND() * 144)+1; 我尝试使用随机生成的数字来检索技巧的信息,该数字将等于它的主键。它应该只抓取一个条目,因为它使用主键,主键是唯一的值。事实上,它在没有押韵或理由的情况下抓取0、1、2或更多条目。它只返回4行

我的MySQL查询一直存在问题。我目前正在尝试制作一个程序,该程序将随机填充一个桥接表,其中包含特定预订的魔术

在与程序斗争了几个小时之后,我将问题缩小到了这行代码

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应该是call
id
available\u tricks\u id
这是我正在测试的临时表。这绝对是主键,因为我在最后一个小时内制作了表格。这句话超出了范围。请创建一个简单但完整且可复制的示例。请看这里:-rand()将为每一行生成一个新值。
SET @rnd = SELECT FLOOR(RAND() * 144)+1;
SELECT *
FROM avaliable_tricks 
WHERE table_id = @rnd;