Avatar billede larsgrau Forsker
21. januar 2021 - 15:31 Der er 6 kommentarer og
1 løsning

MsAccess to mysql

Hej

Jeg har denne query i access og den virker som den skal

DELETE ships.pnt, ships.name, ships.imo, ships.id_id
FROM ships
WHERE (((ships.pnt) In (SELECT [pnt] FROM [ships] As Tmp GROUP BY [pnt],[name],[imo] HAVING Count(*)>1  And [name] = [ships].[name] And [imo] = [ships].[imo])));

Hvordan får man det til at virke i mysql ?
Avatar billede olsensweb.dk Ekspert
21. januar 2021 - 15:52 #1
har du fået tabellen over i mysql ??

du starter med at erstatte [ og ] med ` (backtick), eller bedre fjerne dem helt, hvis der ikke er brug for dem
(utested)
DELETE ships.pnt, ships.name, ships.imo, ships.id_id
FROM ships
WHERE (((ships.pnt) In (SELECT `pnt` FROM `ships` As Tmp GROUP BY `pnt`,`name`,`imo` HAVING Count(*)>1  And `name` = `ships`.`name` And `imo` = `ships`.`imo`)));
Avatar billede olsensweb.dk Ekspert
21. januar 2021 - 16:05 #2
hvis du ikke har lagt tabellen over i mysql kna du prøve om dette virker
https://www.bullzip.com/products/a2m/info.php
Avatar billede arne_v Ekspert
21. januar 2021 - 16:21 #3
Fjerne [] vil nok løse problemet.

Jeg vil klart anbefale at erstatte dem med ingenting - backticks giver problemer når du en gang i fremtiden skifter database igen.

Men derudover må der også kunne fjernes nogle ().
Avatar billede arne_v Ekspert
21. januar 2021 - 16:29 #4
Hvis jeg må henvis etil mig selv:

https://www.vajhoej.dk/arne/articles/dbintro2.html#standard

(der er mange gode råd i den artikel!)
Avatar billede larsgrau Forsker
22. januar 2021 - 09:22 #5
Hej igen

jeg har alt mit data overflyttet til mysql, mit problem kommer når der kommer nyt data, så kan der opstå dubletter og dem vil jeg gerne have fjernet, i access virkede det fint, men jeg syntes ikke rigtigt jeg kan få det til at virke i mysql. jeg har prøvet følgende

<?php

include '../conf/mysqlConnect.php';

$sql = "DELETE ships.pnt, ships.name, ships.imo, ships.id_id
FROM ships
WHERE (((ships.pnt) In (SELECT pnt FROM ships As Tmp GROUP BY pnt,name,imo HAVING Count(*)>1  And name = ships.name And imo = ships.imo`)));";

mysqli_query($myconn, $sql);
?>

nogen ide til hvad der går galt ?
Avatar billede olsensweb.dk Ekspert
22. januar 2021 - 12:23 #6
>når der kommer nyt data, så kan der opstå dubletter og dem vil jeg gerne have fjernet,
har du sat feltet til UNIQUE ?? (gør det)
https://www.mysqltutorial.org/mysql-unique/

dine id er vel / bør være autoincrement
Avatar billede arne_v Ekspert
22. januar 2021 - 14:36 #7
DELETE sletter hele raekker.

Og det er ikke valid syntax at angive feltnavne.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester