mysql随机查询
发表于|更新于
|浏览量:
明者见危于无形,智者见祸于未萌。——《三国志》
我们如果需要使用mysql进行随机取N条这样的操作
我们可以这样写
1 | -- 2.然后查询主表,与我们的tmp_table进行INNER JOIN[内连] |
这个是我认为效率比较高的随机查询了
相关推荐
2020-08-14
mysql join
首先先放张图 今天聊聊mysql表join连接,其本质是拿主表每条数据取出来和子表每行数据进行循环比较,如果满足则返回,不满足返回null 首先是内连接 两者之间取交集,两边都满足返回,不满足不返回 语法很简单 1234567SELECT * FROM tb_goods a INNER JOIN tb_goods_desc b WHERE a.id = b.goods_id 其中,INNER可以省略掉只写个JOIN 然后是左外连接 左外连接,此时可以理解为理解 左表为主表,右表为子表。在条件不满足时,左表数据存在,右表数据为null 简单来说就是结果集包含左表所有行,右表不匹配则为null 12345SELECT * FROM sp_user a LEFT OUTER JOIN tb_seller b ON a.seller_id = b.seller_id 其中,OUTER可省略 反向操作一波就是右外连接 1234567SELECT * FROM tb_seller a RIGHT OUTER JOIN sp_user b ON a.seller_id = b.sell...
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...
2021-12-27
h2database
走的慢的人,只要他不丧失目标,也比漫无目的徘徊的人走得快。——莱辛 首先新建一个项目,勾选MP和H2 编写配置文件 1234567891011121314151617# DataSource Configspring: datasource: driver-class-name: org.h2.Driver schema: classpath:db/schema-h2.sql data: classpath:db/data-h2.sql url: jdbc:h2:mem:test username: root password: test# Logger Configlogging: level: com.baomidou.mybatisplus.samples.quickstart: debugmybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl 然后是数据表结构以及数据文件: schema-h2.sql...
2021-07-08
自用模板sql
真正的伟人,能在愚昧和喧嚣的物质世界中,静心倾听荒漠的声音。——深泉学院(美国) 自用sql,我建站时每张表必备如下字段: 12345678DROP TABLE IF EXISTS `common_template`;CREATE TABLE `common_template` ( `id` bigint(0) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键', `gmt_deleted`datetime(0) DEFAULT NULL COMMENT '逻辑删除字段 NULL未删除 有值表示已删除,值为删除时间', `gmt_create` datetime(0) NOT NULL COMMENT '现在时表示主动式创建', `gmt_modified` datetime(0) NOT NULL COMMENT '过去分词表示被动式更新', PRIMARY KEY (`id`) USING BTREE) ENGINE = InnoDB CH...
2024-04-22
Mysql的NULLIF
秉性难移。——冯梦龙 NULLIF函数是MySQL中的一个条件函数,用来返回两个表达式的比较结果。具体来说,如果两个表达式相等,NULLIF函数返回NULL;如果不相等,它就返回第一个表达式的值。其基本语法如下: 1NULLIF(expr1, expr2) 其中,expr1和expr2可以是任何类型的表达式,但它们应该是相同的数据类型或者可以隐式转换的类型。 在数学运算特别是除法运算中,除以零会导致错误。使用NULLIF可以有效避免这种错误。例如,我们要计算两个列A和B的比值,可以这样写: 12SELECT A, B, A / NULLIF(B, 0) AS resultFROM your_table; 这里,如果B为0,则NULLIF(B, 0)返回NULL,A / NULL也会返回NULL,从而避免了运行时错误。 在数据导入或处理过程中,我们可能会遇到一些特殊值需要转换为NULL以保持数据的一致性。例如,某些系统中使用-1表示数据缺失,我们可以使用NULLIF来转换这些值: 12SELECT NULLIF(column_name, -1)FROM your_table...
2022-02-10
mysql数据库信息函数
我将仇恨写在冰上,然后期待太阳的升起。——加西亚马尔克斯 打开mysql官方文档:Information Functions 可以看到mysql查询库表信息的函数 Name Description BENCHMARK() Repeatedly execute an expression CHARSET() Return the character set of the argument COERCIBILITY() Return the collation coercibility value of the string argument COLLATION() Return the collation of the string argument CONNECTION_ID() Return the connection ID (thread ID) for the connection CURRENT_ROLE() Return the current active roles CURRENT_USER(), CURRENT_USER...

阿超
我的名字叫阿超 年龄25岁 家在北京市 职业是软件开发 每天最晚也会在八点前回家 不抽烟 酒浅尝辄止 晚上十二点上床 保证睡足八个小时 睡前写一篇博客 再做二十分钟俯卧撑暖身 然后再睡觉 基本能熟睡到天亮 像婴儿一样不留下任何疲劳和压力 就这样迎来第二天的早晨 健康检查结果也显示我很正常 我想说明我是一个不论何时都追求内心平稳的人 不拘泥于胜负 不纠结于烦恼 不树立使我夜不能寐的敌人 这就是我在这社会的生活态度
Follow Me公告
This is my Blog