mysql随机查询(二)
发表于|更新于
|浏览量:
活教会我思考,可思考没有教会我生活。——赫尔芩
之前写过mysql随机查询
今天学到一个新方式:
1 | SELECT * FROM user_info ORDER BY rand() ASC limit 1 |
非常的简单方便
对应mp的写法:
1 | List<UserInfo> list = Database.list(Wrappers.query(new UserInfo()).orderByAsc("rand()").last("limit 1")); |

相关推荐
2021-04-07
mysql随机查询
明者见危于无形,智者见祸于未萌。——《三国志》 我们如果需要使用mysql进行随机取N条这样的操作 我们可以这样写 12345678-- 2.然后查询主表,与我们的tmp_table进行INNER JOIN[内连]SELECT * FROM `film` AS main_table JOIN -- 1.取出主表主键的最大值,与RAND()相乘[RAND()生成0到1的随机数],然后使用ROUND函数取整获得一个tmp_id(SELECT ROUND(RAND() * (SELECT MAX(`film_id`) FROM `film`)) AS tmp_id) AS tmp_table-- 3.条件为主表主键大于等于tmp_table.tmp_idWHERE main_table.`film_id` >= tmp_table.tmp_id-- 4.排序,限制条数,这里的可以任选ORDER BY main_table.`film_id` LIMIT 5; 这个是我认为效率比较高的随机查询了
2021-02-10
自增sql
所谓觉悟,就是在漆黑的荒野上开辟出一条理当前进的道路。——乔鲁诺.乔巴纳 我们可以使用 1update user set age=age+1 where id = 1 来让age在原来的基础上+1
2023-06-28
解决不能在mysql唯一索引使用函数问题
我们在伤害别人之前,要想到别人也会同样伤害我们。——达·芬奇 遇到不能在mysql唯一索引使用函数问题 可以使用虚拟列,例如下面的例子 1234# 添加虚拟列,为`date`字段格式化为月计算出来得到`month`字段ALTER TABLE `my_table` ADD COLUMN `month` VARCHAR(7) AS (DATE_FORMAT(`date`, '%Y-%m')) VIRTUAL;# 添加唯一索引到`month`和其他字段,组成联合唯一索引ALTER TABLE `my_table` ADD UNIQUE INDEX uk_date (`month`, `gmt_deleted`);
2020-07-22
sql时间N天前数据查询
今天写代码用到了 1234567891011#三年前的日期select date_format(date_sub(now(),interval 3 year),'%Y-%m-%d')#6个月之后的时间select date_add(now(),interval 6 month);#14天后的时间select date_add(now(),interval 3 day);#10分钟之内的数据select * from table_name where create_time >= (select date_sub(now(),interval 10 minute))#30秒后的时间select date_add(now(),interval 30 second);
2022-06-09
exists
发上开出了蔷薇,袖底是风,足下是莲。——顾城 我们可以使用exists代替in查询: 阿里编码规约第五条第(三)条第9条: 【推荐】in操作能避免则避免,若实在避免不了,需要仔细评估in后边的集合元素数量,控制在1000个之内。 我们可以在子元素多的情况下,使用exists查询 比如下面这个in查询 123456789101112SELECT * FROM sys_user AS a WHERE id in ( SELECT user_id FROM sys_user_role AS b WHERE b.role_id IN ( SELECT id FROM sys_role AS c WHERE b.role_id = c.id AND c.role_code LIKE '%o%' )); 可以改为: 12345678910111213SELECT * FROM sys_user AS a WHERE EXISTS ( SELECT user_id FROM sys_user_role AS b WHERE a.id = b.us...
2022-02-21
安装另一个mysql
生命中的全部偶然,其实都是命中注定。是为宿命。——《宿命》 首先下载: https://downloads.mysql.com/archives/community/ 我这里下载5.7 下载完了解压 解压后目录如下 我们新建一个my.ini 123456789101112131415161718192021222324[mysqld]# 端口port=3305# 安装目录basedir=D:\environment\mysql5# 数据目录datadir=D:\environment\mysql5\data# 最大连接数max_connections=200# 连接失败最大次数max_connect_errors=10# 默认字符集character-set-server=utf8# 默认存储引擎default-storage-engine=INNODB# 认证方式# mysql_native_passworddefault_authentication_plugin=mysql_native_password[mysql]# 客户端默认字符集default-charac...
