|
| Sammenlign 2 tabeller i MySql Fra : Carsten |
Dato : 16-05-09 13:52 |
|
Jeg har 2 tabeller med adresser i.
Jeg vil gerne lave en stored procedure som kan gennemse hver record i
den ene tabel og se om adresserne er i den anden, hvis ikke så gemme
den adresse der mangler i en tredje tabel
Er der nogle der har et par fif til hvordan man gør det smart.
Carsten
| |
Peter Lykkegaard (16-05-2009)
| Kommentar Fra : Peter Lykkegaard |
Dato : 16-05-09 07:09 |
|
Carsten
> Er der nogle der har et par fif til hvordan man gør det smart.
Er det noget der skal laves løbende eller bare een gang?
- Peter
| |
Carsten (18-05-2009)
| Kommentar Fra : Carsten |
Dato : 18-05-09 09:16 |
|
Peter Lykkegaard wrote:
> Carsten
>
>> Er der nogle der har et par fif til hvordan man gør det smart.
>
> Er det noget der skal laves løbende eller bare een gang?
>
> - Peter
Det skal laves med faste intervaller.
Carsten
| |
Arne Vajhøj (16-05-2009)
| Kommentar Fra : Arne Vajhøj |
Dato : 16-05-09 22:32 |
|
Carsten wrote:
> Jeg har 2 tabeller med adresser i.
> Jeg vil gerne lave en stored procedure som kan gennemse hver record i
> den ene tabel og se om adresserne er i den anden, hvis ikke så gemme
> den adresse der mangler i en tredje tabel
>
> Er der nogle der har et par fif til hvordan man gør det smart.
Hvad med noget lignende:
INSERT INTO tabel3
SELECT *
FROM tabel1
WHERE CONCAT(vej,nr,postnr) NOT IN(SELECT CONCAT(vej,nr,postnr) FROM tabel2)
Arne
| |
Carsten (18-05-2009)
| Kommentar Fra : Carsten |
Dato : 18-05-09 09:15 |
|
Arne Vajhøj wrote:
> Carsten wrote:
>> Jeg har 2 tabeller med adresser i.
>> Jeg vil gerne lave en stored procedure som kan gennemse hver record i
>> den ene tabel og se om adresserne er i den anden, hvis ikke så gemme
>> den adresse der mangler i en tredje tabel
>>
>> Er der nogle der har et par fif til hvordan man gør det smart.
>
> Hvad med noget lignende:
>
> INSERT INTO tabel3
> SELECT *
> FROM tabel1
> WHERE CONCAT(vej,nr,postnr) NOT IN(SELECT CONCAT(vej,nr,postnr) FROM
> tabel2)
>
> Arne
Det prøver jeg. Foreløbig tak
Carsten
| |
Carsten (20-05-2009)
| Kommentar Fra : Carsten |
Dato : 20-05-09 11:43 |
|
>> Arne
> Det prøver jeg. Foreløbig tak
Det virker fint.
Nu har jeg det problem at nogle felter som burde være ens, har et ekstra
mellemrum i slutningen af strengen.
Er der en måde hvor på man enten kan fjerne overflødige mellem (før og
efter) eller ignorer dem ved sammenligning.
Carsten
| |
Leif Neland (21-05-2009)
| Kommentar Fra : Leif Neland |
Dato : 21-05-09 10:05 |
|
Carsten skrev:
>>> Arne
>> Det prøver jeg. Foreløbig tak
> Det virker fint.
> Nu har jeg det problem at nogle felter som burde være ens, har et ekstra
> mellemrum i slutningen af strengen.
> Er der en måde hvor på man enten kan fjerne overflødige mellem (før og
> efter) eller ignorer dem ved sammenligning.
>
Update tabel set felt=trim(felt),felt2=trim(felt2)...
Leif
| |
Carsten (22-05-2009)
| Kommentar Fra : Carsten |
Dato : 22-05-09 18:54 |
|
Leif Neland wrote:
> Carsten skrev:
>>>> Arne
>>> Det prøver jeg. Foreløbig tak
>> Det virker fint.
>> Nu har jeg det problem at nogle felter som burde være ens, har et
>> ekstra mellemrum i slutningen af strengen.
>> Er der en måde hvor på man enten kan fjerne overflødige mellem (før og
>> efter) eller ignorer dem ved sammenligning.
>>
> Update tabel set felt=trim(felt),felt2=trim(felt2)...
Virker fint
Tak for det
Carsten
| |
Arne Vajhøj (22-05-2009)
| Kommentar Fra : Arne Vajhøj |
Dato : 22-05-09 01:31 |
|
Carsten wrote:
>>> Arne
>> Det prøver jeg. Foreløbig tak
> Det virker fint.
> Nu har jeg det problem at nogle felter som burde være ens, har et ekstra
> mellemrum i slutningen af strengen.
> Er der en måde hvor på man enten kan fjerne overflødige mellem (før og
> efter) eller ignorer dem ved sammenligning.
Hvis feltet er CHAR eller (feltet er VARCHAR og MySQL version < 5), så
skulle MySQL ignorere trailing spaces.
Hvis feltet er VARCHAR og MySQL version >= 5, så skal du selv gøre
noget.
I.s.f. felt kan du bruge RTRIM(felt).
Arne
| |
|
|