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 = &