我想从表中删除一些随机数据,并剪切90%的行(我有非常大的数据,我只需要一个示例),表如下所示:
ID |Trans_No |Doctor_ID |Trans_Type |PM |Cost
12340 |10.853329 | |ADMINISTRASI | |0.00
12341 |10.853329 |1004 |JASA MEDIS | |25000.00
12342 |10.853329 | |OBAT RESEP FARMASI NO : 177 |F |2000.00
12343 |10.836033 | |ADMINISTRASI | |0.00
12344 |10.836033 |1001 |JASA MEDIS | |25000.00
12345 |10.836033 | |OBAT RESEP FARMASI NO : 317 |F |0.00
12346 |10.836032 | |ADMINISTRASI | |0.00
12347 |10.836032 |1004 |JASA MEDIS | |25000.00
12348 |10.836032 | |PEMERIKSAAN RADIOLOGI NO 092.1|R |15000.00
12349 |10.836034 |1064 |JASA MEDIS | |25000.00
12350 |10.836034 | |PEMERIKSAAN RADIOLOGI NO 093.1|R |20000.00
我想这个问题会有用的:
DELETE FROM my_table WHERE RAND() <= 0.9
但正如您所看到的,有些数据有相同的trans_no,如果删除一个trans_no,那么应该将其他具有相同trans_no的数据删除到,是否有任何查询来执行此操作?
最佳答案
您应该先选择符合条件的trans_no
,然后删除它们,如下所示:
DELETE FROM my_table
WHERE trans_no IN (
SELECT trans_no
FROM (SELECT DISTINCT trans_no FROM my_table) x
WHERE rand() <= 0.9
)
关于mysql - 删除MySQL中的随机数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14117281/