mysql如何取出部分数据

mysql如何取出部分数据,第1张

第一、如果是随机去除,可以:

1、取出表总条数n

2、在应用程序中生成n个随机数(区间在0到n-1)

3、去数据库中把这些记录取出来

第二、用优化mysql查询语句的方法

网上基本上都是查询max(id) * rand()来随机获取数据。

SELECT *

FROM `table` AS t1 JOIN (SELECT ROUND(RAND() * (SELECT MAX(id) FROM `table`)) AS id) AS t2

WHERE t1.id >= t2.id

ORDER BY t1.id ASC LIMIT 5

但是这样获得的是5条连续的记录,解决办法只能是每次查询一条,查询5次。

如果只是固定取"20/30"比较容易, 只需找到"20/30"在此字符串的开始位置,再截取5个字符的长度就可以了,如:

SELECT CASE WHEN CHARINDEX('mgdf13hj44jjjgasetrxzc20/30nj5weyu45f5645gjhkdfjkg', '20/30') >0 THEN SUBSTRING('mgdf13hj44jjjgasetrxzc20/30nj5weyu45f5645gjhkdfjkg', CHARINDEX('mgdf13hj44jjjgasetrxzc20/30nj5weyu45f5645gjhkdfjkg', '20/30'),5) ELSE '' END

如果不一定是20/30,而是与"/"前后关联的数字(eg: 14/20, 33/66,等...),就麻烦了,你可能需要写一个抽取字符串的函数,如: f_substr(),然后在SQL里调用:

select 用户.f_substr('mgdf13hj44jjjgasetrxzc20/30nj5weyu45f5645gjhkdfjkg')

直接用replace就好了,,,只不过分别执行4次而已

首先在字段的结尾都更新个''符号

然后在replace

给你举个例子,例如2

update

set

字段=replace(字段,'2','')

后面的3个数字一样的方式更新


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10027730.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存