mysql获取多张表中的数据_mysql如何在多个表中查询指定数据

面对数据库中n个格式为game_[0-9a-z]+_order的游戏订单表,需要查找订单号18demo000001所在的表。通过`show tables like "game_%_order"`获取所有表名,但直接遍历查询效率低下。目前最佳实践是手动逐表更新并检查受影响的行数,通过设置无影响业务的ext1字段为特定值来标识,利用工具如Sublime的多光标功能批量生成和执行更新语句,然后通过查询结果定位订单存在的表。
摘要由CSDN通过智能技术生成

1.问题描述

假设数据库中存在n个游戏订单表,表名格式为game_[0-9a-z]+_order.

已知存在订单号18demo000001,如何比较高效地查出这个订单在哪个游戏表?

2.自己做的思考

目前能想到的就是先列出所有的游戏表

show tables like "game_%_order"

然后再手动一个一个地查,但是这样效率太低。

是否有更好的方法比较高效的查询?

3.注:仅讨论该场景的解决方法,不必讨论该场景的合理性。实际上订单号是有游戏信息的,但是不知道为何没有落到它对应的游戏的游戏表中,所以需要进行整个库的全表查询。请把表和订单当成没有任何关系

4.另注:谢谢大家的回答,看来并没有更好的方案了,本来想着能否使用show tables like "game_%_order"去获得全部表名的数组。然后select * from 表名数组 where orderID = "18demo000001" 的思路去解决的。但是无论是show tables 赋值给数组,还是select from 数组,这个在mysql中都好像不能实现。

后来者如果在这条思路上有相关的实现欢迎回答讨论,目前的做法是手动查了一百多种表找到了出错数据所在的位置。

具体做法是

update game_demo1_order set ext1 = "debug" where orderID = "18demo000001";

update game_test2_order set ext1 = "debug" where orderID = &

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值