如何根据在MYSQL中返回多条记录的select表达式中的条件将特定列值设置为变量
情况就是这样。我有一个图像表,其中包含图像标识、图像位置和图像描述字段 我需要编写一个SQL来选择3个随机图像(随机图像id),并且每个图像都有一个图像计数器,该计数器也是随机的(1到10),因此每个图像都会出现(在前端)图像计数器次数如何根据在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,
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;
请在您的问题中添加示例数据。