mysql 获取枚举的随机值

mysql 获取枚举的随机值

  • 1.需求描述
  • 2.使用到的函数
    • elt函数
      • 语法
      • 示例
    • RAND() 函数
    • FLOOR()函数
  • 3.解决方案
    • 手写生成:少量数据
    • 从表中生成:多数据
  • 4.实战

1.需求描述

在MySQL中,您可以使用ENUM类型定义列,并且可以从中选择随机值。但是,MySQL不支持直接从ENUM中随机选择值的函数。您可以使用ELT函数结合FLOOR和RAND函数来实现这一点。

2.使用到的函数

elt函数

mysql中elt函数是用于字符串处理的函数之一,它用于从给定的字符串列表中选择一个字符串,根据指定的索引位置来确定返回哪个字符串。elt函数的语法为“elt(index, string1, string2, string3, …)”,其中,index是要选择的字符串的索引位置,string1, string2, string3, …是要进行选择的字符串列表

语法

ELT(index, string1, string2, string3, …)

示例

SELECT ELT(1,'Apple','Banana','Cherry'); -- Apple
SELECT ELT(3,'Apple','Banana','Cherry'); -- Cherry
SELECT ELT(4,'Apple','Banana','Cherry'); -- null

RAND() 函数

生成一个0到1的随机数
RAND() = 0.02871985549919294

FLOOR()函数

向下取整
FLOOR(3.6) = 3
FLOOR(4.1) = 4

3.解决方案

手写生成:少量数据

以下是一个示例,假设您有一个名为my_table的表,该表有一个my_enum的ENUM类型列,该列有三个可能的值:‘Value1’, ‘Value2’, ‘Value3’。

SELECT ELT(FLOOR(RAND() * 3) + 1,'Value1','Value2','Value3'
) AS random_enum_value;

这个查询首先使用RAND()函数生成一个0到1的随机数。然后,FLOOR()函数将这个随机数乘以3(因为您有3个ENUM值)并且取下限值,确保结果是一个0、1或2。最后,ELT()函数使用这个计算出来的索引来返回相应位置的ENUM值。

从表中生成:多数据

如果您需要从表中随机选择一行,并获取其ENUM列的随机值,您可以使用类似的逻辑在SELECT查询中:

SELECT ELT(FLOOR(RAND() * (SELECT COUNT(*) FROM my_enum_column_options)) + 1,(SELECT value1 FROM my_enum_column_options),(SELECT value2 FROM my_enum_column_options),(SELECT value3 FROM my_enum_column_options)
) AS random_enum_value
FROM my_table
LIMIT 1;

在这个查询中,my_enum_column_options是一个包含所有ENUM值的虚拟表(您需要替换为您自己的查询)。COUNT()用来获取ENUM值的数量,FLOOR(RAND() * COUNT())用来生成一个随机的索引,然后通过ELT()函数和子查询获取对应的ENUM值。

4.实战

随机生成分数表的分数,分数在【100,80,60,40】中随机选择

update t_score set score = ELT(FLOOR(RAND() * 4) + 1,'100','80','60','40');

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/38945.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

超融合服务器挂载硬盘--linux系统

项目中需要增加服务器的硬盘容量,通过超融合挂载了硬盘后,还需要添加到指定的路径下,这里记录一下操作步骤。 一:通过管理界面挂载硬盘 这一步都是界面操作,登录超融合控制云台后,找到对应的服务器&#…

uniapp中实现跳转到外部链接(也就是a标签的功能)

uniapp中实现跳转到外部链接(也就是a标签的功能) 项目中需要做到跳转到外部链接,网上找了很多都不是很符合自己的要求,需要编译成app后是跳转到游览器打开链接,编译成web是在新窗口打开链接。实现的代码如下&#xff1…

矩阵、混剪、大盘,3大功能升级优化!助力企业高效管理!

在数字化转型的浪潮中,企业对于工具与技术的需求愈发强烈。 为满足市场需求,本月【云略】为各企业上线了便捷功能,赋能企业经营决策和业务增长。 矩阵管理 √【矩阵号管理】抖音支持设置城市IP 内容管理 √【混剪任务】支持关联智能发布计…

PDF文档如何统计字数,统计PDF文档字数的方法有哪些?

在平时使用pdf阅读或者是处理文档的时候,常常需要统计文档的字数。pdf在查看文字时其实很简单。 PDF文档是一种常见的电子文档格式,如果需要对PDF文档中的字数进行统计,可以使用以下方法: Adobe Acrobat DC:Adobe Ac…

AI大模型,爆发了

随着ChatGPT用户增速放缓,AI创业公司马太效应加剧,第一轮AI投资热潮逐渐褪去,AI大模型进入“冷静期”。擅长后发制人的腾讯,姗姗来迟,推出了混元大模型,为这一轮AI热潮画上了句号。 AI大模型,开…

Windows安装adb服务/离线安装adb服务

1、问题概述? Android SDK Platform-Tools 是 Android SDK 的一个组件。它包含与 Android 平台进行交互的工具,主要是 adb 和 fastboot。 最近在从事手机app自动化测试,使用到了abd这个服务器,通过adb这个服务,我们可以识别加载Android系统,并执行相对应的操作如:查询…

OpenHarmony开发实战:GPIO控制器接口

功能简介 GPIO(General-purpose input/output)即通用型输入输出。通常,GPIO控制器通过分组的方式管理所有GPIO管脚,每组GPIO有一个或多个寄存器与之关联,通过读写寄存器完成对GPIO管脚的操作。 GPIO接口定义了操作GP…

Langchain-Chatchat本地部署记录,三分钟学会!

1.前言: 最近AI爆发式的火,忆往昔尤记得16,17那会移动互联网是特别火热的,也造富了一批公司和个人,出来了很多精妙的app应用。现在轮到AI发力了,想想自己也应该参与到这场时代的浪潮之中,所以就找了开源的…

【微服务网关——https与http2代理实现】

1.https与http2代理 1.1 重新认识https与http2 https是http安全版本http2是一种传输协议两者并没有本质联系 1.1.1 https与http的区别 HTTP(超文本传输协议)和 HTTPS(安全超文本传输协议)是用于在网络上交换数据的两种协议。H…

一人独角兽公司会催生新的职业:给AI打工的那些人

最近有篇文章: www.bbc.com/future/article/20240612-the-people-making-ai-sound-more-human 重点介绍了AI在文案写作领域替代人类,导致许多岗位消失,但也创造了低薪的AI文本编辑工作。尽管AI提高了效率,但生成的内容质量较差&am…

科普文:一文搞懂jvm原理(三)执行引擎之垃圾回收器

概叙 科普文:一文搞懂jvm(一)jvm概叙-CSDN博客 科普文:一文搞懂jvm原理(二)类加载器-CSDN博客 科普文:一文搞懂jvm原理(三)执行引擎-CSDN博客 科普文:一文搞懂jvm原理(四)运行时数据区-CSDN博客 前面我们介绍了jvm&#xff0c…

网安加·百家讲坛 | 刘志诚:从安全(Safety)团队看OpenAI之争的本质

作者简介:刘志诚,乐信集团信息安全中心总监、OWASP广东区域负责人、网安加社区特聘专家。专注于企业数字化过程中网络空间安全风险治理,对大数据、人工智能、区块链等新技术在金融风险治理领域的应用,以及新技术带来的技术风险治理…

软件测试面试题常见一百道【含答案】

1、问:你在测试中发现了一个bug,但是开发经理认为这不是一个bug,你应该怎样解决? 首先,将问题提交到缺陷管理库里面进行备案。 然后,要获取判断的依据和标准: 根据需求说明书、产品说明、设计文档等&am…

安装docker compose与elasticsearch,kibana

1.docker compose安装 1.1是否已安装docker docker -v 1.2安装docker compose curl -SL https://github.com/docker/compose/releases/download/v2.18.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-composeps:如果网络太慢可直接在博客中下载附属文件 下载后修…

轨迹规划 | 图解模型预测控制MPC算法(附ROS C++/Python/Matlab仿真)

目录 0 专栏介绍1 模型预测控制原理2 差速模型运动学3 基于差速模型的MPC控制4 仿真实现4.1 ROS C实现4.2 Python实现4.3 Matlab实现 0 专栏介绍 🔥附C/Python/Matlab全套代码🔥课程设计、毕业设计、创新竞赛必备!详细介绍全局规划(图搜索、…

【FFmpeg】av_read_frame函数

目录 1.av_read_frame1.2 从pkt buffer中读取帧(avpriv_packet_list_get)1.3 从流当中读取帧(read_frame_internal)1.3.1 读取帧(ff_read_packet)1.3.2 解析packet(parse_packet)1.3…

android模糊背景的实现

android上模糊后期已经通用了基本上就是RenderEffect。 为了使用方便简便找到一个合适的库 implementation com.github.Dimezis:BlurView:version-2.0.4<eightbitlab.com.blurview.BlurViewandroid:id"id/blurView"android:layout_width"wrap_content"a…

为什么要学习大模型应用开发?原因80%的人都不知道

0 prompt engineer 就是prompt工程师它的底层透视。 1 学习大模型的重要性 底层逻辑 人工智能大潮已来&#xff0c;不加入就可能被淘汰。就好像现在职场里谁不会用PPT和excel一样&#xff0c;基本上你见不到。你问任何一个人问他会不会用PPT&#xff0c;他都会说会用&#x…

喜讯|华院计算认知智能引擎算法平台荣登BPAA大赛创新组TOP50

6月25日&#xff0c;备受瞩目的BPAA第四届全球应用算法模型典范大赛&#xff08;以下简称“BPAA大赛”&#xff09;正式揭晓了《第四届全球应用算法模型典范大赛创业组TOP50榜单》和《第四届全球应用算法模型典范大赛创新组TOP50榜单》。其中&#xff0c;华院计算技术&#xff…

[Microsoft Office]Word设置页码从第二页开始为1

目录 第一步&#xff1a;设置页码格式 第二步&#xff1a;设置“起始页码”为0 第三步&#xff1a;双击页码&#xff0c;出现“页脚”提示 第四步&#xff1a;选中“首页不同” 第一步&#xff1a;设置页码格式 第二步&#xff1a;设置“起始页码”为0 第三步&#xff1a;双…