Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.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中返回多条记录的select表达式中的条件将特定列值设置为变量_Mysql - Fatal编程技术网

如何根据在MYSQL中返回多条记录的select表达式中的条件将特定列值设置为变量

如何根据在MYSQL中返回多条记录的select表达式中的条件将特定列值设置为变量,mysql,Mysql,情况就是这样。我有一个图像表,其中包含图像标识、图像位置和图像描述字段 我需要编写一个SQL来选择3个随机图像(随机图像id),并且每个图像都有一个图像计数器,该计数器也是随机的(1到10),因此每个图像都会出现(在前端)图像计数器次数 SELECT i.Image_Location, FLOOR(RAND()*10)+1 AS Image_Counter, false AS Use_Button FROM images i WHERE i.Image_ID IN (rand2,rand3,

情况就是这样。我有一个图像表,其中包含图像标识、图像位置和图像描述字段

我需要编写一个SQL来选择3个随机图像(随机图像id),并且每个图像都有一个图像计数器,该计数器也是随机的(1到10),因此每个图像都会出现(在前端)图像计数器次数

SELECT i.Image_Location, FLOOR(RAND()*10)+1 AS Image_Counter, false AS Use_Button 
FROM images i 
WHERE i.Image_ID IN (rand2,rand3,rand4) 
ORDER BY i.Image_ID;
rand2、rand3、rand4是在前面的语句中生成的随机数,用于按id对图像进行随机化

但是我需要知道当
Image\u ID=rand2
时为
Image\u计数器生成的任何随机数,并将其设置为一个变量,因为当
Image\u ID=rand2
时,它是前端显示为问题的图片,我需要
Image\u计数器
,以便该图像在以后存储为答案

这就是我执行它时发生的情况

  • 图像位置图像计数器使用按钮
  • blackhorse01.jpg\uuuuuuuuuuuuuuuuuuuuuuuuuuuuu0
  • pinkpurse01.jpg_uuuuuuuuuuuuuuuu6_uuuuuuuuuuuuuuuuuuuu0
  • 长颈鹿01.jpg_uuuuuuuuuuuuuuuuuu4_uuuuuuuuuuuuuuuuu0
在本例中,pinkpurse01.jpg是image_ID=rand2的图像,因此需要将6存储到一个变量中,以便以后使用


怎么做?

我试着用这种方法,效果很好

    SET randnumberofpic= FLOOR(RAND()*10)+1;
    
    SELECT i.Image_Location, CASE  i.Image_ID
                               WHEN rand2 THEN 
                                randnumberofpic
                               ELSE FLOOR(RAND()*10)+1  
                             END Image_Counter, 
    false AS Use_Button 
    FROM images i WHERE i.Image_ID IN (rand2,rand3,rand4) ORDER BY
    i.Image_ID;
    
    SELECT randnumberofpic AS Answer; 

请在您的问题中添加示例数据。