webForumDet fria alternativet
Logga in / Bli medlem

Problem med LIKE

Databaser & SQL

3 svar · 190 visningar · startad av foks

Medlem sedan juli 200280 inlägg
Trådstart#1

Jag har en tabell med 2 kolumner. I kolumn 1 står det 1234 och i kolumn 2 står det 3.
Jag vill nu att MySQL-strängen ska kontrollera om det som står i kolumn 2 står med någonstans i kolumn 1, vilket det i fallet ovan gör.
Det ska alltså bli ungefär som
SELECT * FROM tabell WHERE kolumn1 LIKE '%kolumn2%'

Men hur får jag strängen att fatta att kolumn2 finns med i tabellen, och inte är en vanlig text att jämföra med?

Medlem sedan dec. 200012 464 inlägg
#2
SELECT * FROM tabell 
WHERE kolumn1 LIKE concat('%',kolumn2,'%')

Det var en konstig datamodell.

Medlem sedan juli 200280 inlägg
#3

Tackar! Det fungerade perfekt. Databasstrukturen är inte så idiotisk som den verkar. Egentligen är det kolumner i helt olika tabeller som ska jämföras (och lite annat) men jag förenklade lite.

Medlem sedan dec. 200012 464 inlägg
#4

Oavsett om kolumnerna ligger i olika tabeller eller inte så tycker jag det är konstigt i alla fall.

ed:
Jag skulle nog säga det är värre om dom ligger i olika tabeller eftersom en join på det sättet aldrig kommer att bli effektiv eftersom man inte kan använda index.

257 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)