我想从表中删除一些随机数据,并剪切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/

10-10 21:19
查看更多