Remove duplicate latitude and longitude pairs from a database table

To remove duplicate latitude and longitude pairs from a database table, you can use a DELETE statement to delete all but one of the duplicates. Here's an example PHP code that performs this operation:

// database connection parameters
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database_name";

// connect to the database
$conn = new mysqli($servername, $username, $password, $dbname);

// check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);

// query to find duplicates
$sql = "SELECT latitude, longitude, COUNT(*) 
        FROM locations 
        GROUP BY latitude, longitude 
        HAVING COUNT(*) > 1";

// execute the query
$result = $conn->query($sql);

// loop through the duplicate pairs and delete all but one
while($row = $result->fetch_assoc()) {
    $latitude = $row["latitude"];
    $longitude = $row["longitude"];
    $count = $row["COUNT(*)"];

    // query to delete duplicates
		$delete_sql = "DELETE FROM mrk6smh_service_locations 
               WHERE latitude = $latitude AND longitude = $longitude 
               LIMIT " . ($count - 1);

    // execute the delete query
    if ($conn->query($delete_sql) === TRUE) {
        echo "Deleted $count - 1 duplicate pairs with latitude $latitude and longitude $longitude.<br>";
    } else {
        echo "Error deleting duplicates: " . $conn->error;

// close database connection

The code first performs the same SELECT query to find the duplicate latitude and longitude pairs, as explained in my previous answer. It then loops through each duplicate pair and deletes all but one using a DELETE statement. The LIMIT clause is used to specify the number of rows to delete, which is equal to the count of duplicates minus one. Finally, the code outputs a message for each duplicate pair indicating how many rows were deleted.

Note that this operation permanently deletes data from the database, so it's important to make sure you have a backup of the data before running the code.

Related Articles

- All From ChatGPT