WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Mysql CONCAT (https://www.wn.se/forum/showthread.php?t=15586)

Lukas 2006-08-14 15:27

Jag har nyligen lärt mig använda CONCAT i mysql-frågor, vilket jag tycker är otroligt mycket smidigare än att ha milslånga frågor i stil med "...AND foo LIKE "%bar% AND foo2 LIKE "%bar%"...

Blir det någon skillnad i prestanda och riskerar man kompatibilitet med webbhotell som kör gamla verrar av mysql om man skriver frågor med CONCAT istället, typ
SELECT * FROM my_table WHERE CONCAT(city, municipality, county, description) LIKE "%Stockholm%"

PeterM 2006-08-14 16:39

Jag kan inte tänka mig att det finns någon MySQL-installation som inte stödjer/tillåter CONCAT. Om du hittar någon med en sådan så ta det som ett bra argument för att söka vidare.

På prestandaavdelningen så kan fler funktionsanrop inte leda till förbättrad prestanda, så mycket är säkert. Alla möjligheter för MySQL att använda eventuella index åker också rakt ut genom fönstret. Vill du nödvändigtvis söka på det sättet så kanske du skulle fundera på att skapa en ny tabell där all data redan körts genom CONCAT. Exempelvis en tabell search med fälten id och data. Gör sökningen mot search.data och join'a ihop resultatet mot din huvudtabell via id.

jensjakob 2006-08-14 19:40

En idé är att göra ett nytt fält i databasen med "sökord" där man tar bort onödiga ord som t ex "gatan", mellanrum, kanske vissa ord eller tecken, siffror, eller kanske lägger till synonymer, olika stavningar osv. Detta kan nog hjälpa dig och dessutom ge mervärde eftersom man ha med olika felstavningar.

Lukas 2006-08-16 10:53

Citat:

Originally posted by jensjakob@Aug 14 2006, 19:40
En idé är att göra ett nytt fält i databasen med "sökord" där man tar bort onödiga ord som t ex "gatan", mellanrum, kanske vissa ord eller tecken, siffror, eller kanske lägger till synonymer, olika stavningar osv. Detta kan nog hjälpa dig och dessutom ge mervärde eftersom man ha med olika felstavningar.
Tack för tipset, med stöd för felstavningar och synonymer stiger användbarheten.


Alla tider är GMT +2. Klockan är nu 01:19.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson