为什么mysql不能进行多表查询
答案:2 悬赏:50 手机版
解决时间 2021-03-10 23:53
- 提问者网友:聂風
- 2021-03-10 10:11
为什么mysql不能进行多表查询
最佳答案
- 五星知识达人网友:上分大魔王
- 2021-03-10 11:19
方法一、数据表记录不大的情况下:
select * from `table`
查出来所有的记录列表,然后array_rand()随机出一个结果的数组的key。连续的key可以使用mt_rand(1, count($list)); 为什么不使用rand而是mt_rand呢?因为mt_rand币rand快4倍。
这种情况下,查出整个列表,存入到Memcache的缓存或者Redis的NoSQL中,下次直接取出结果集而不需要查表。不过当数据量一旦超过万级别,取出列表就很困难了。
方法二:使用SQL语句随机
MYSQL函数RAND(),产生一个0-1之间的小数,然后MAX(`id`)可以获得该表中最大的ID。那么MAX(`id`) * RAND()就可以取到表中所有的ID。OK,看语句。
SELECt * FROM `table` WHERe `id` > (SELECt RAND() * (SELECT MAX(`id`) FROM `table`) LIMIT 0, 1
select * from `table`
查出来所有的记录列表,然后array_rand()随机出一个结果的数组的key。连续的key可以使用mt_rand(1, count($list)); 为什么不使用rand而是mt_rand呢?因为mt_rand币rand快4倍。
这种情况下,查出整个列表,存入到Memcache的缓存或者Redis的NoSQL中,下次直接取出结果集而不需要查表。不过当数据量一旦超过万级别,取出列表就很困难了。
方法二:使用SQL语句随机
MYSQL函数RAND(),产生一个0-1之间的小数,然后MAX(`id`)可以获得该表中最大的ID。那么MAX(`id`) * RAND()就可以取到表中所有的ID。OK,看语句。
SELECt * FROM `table` WHERe `id` > (SELECt RAND() * (SELECT MAX(`id`) FROM `table`) LIMIT 0, 1
全部回答
- 1楼网友:酒者煙囻
- 2021-03-10 11:54
会不会是你那里的 多表关联的条件写错啦?
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯