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

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