webForumDet fria alternativet

Hämta post vars värde utgör del av sträng.

Databaser & SQL

7 svar · 505 visningar · startad av Lennholm

Medlem sedan aug. 2004108 inlägg
Frågan#1

Hej, jag undrar om det finns något sätt att hämta ut en post vars värde är en del av en sträng man använder som jämförelse, alltså raka motsatsen till detta:

SELECT * FROM tabell WHERE kolumn LIKE '%sträng%'

I exemplet ovan får man ju ut alla poster där "sträng" är en del av "kolumn" men jag vill alltså ha ut alla poster där "kolumn" är en del av "sträng"

Medlem sedan dec. 200012 464 inlägg
#2
where 'sträng' like '%' || column || '%'
Medlem sedan aug. 2004108 inlägg
#3

Tack, men det fungerade inte riktigt som jag tänkt. Frågan returnerade alla poster i tabellen, även de som inte hade nånting med värdet på "sträng" att göra.

Medlem sedan dec. 200012 464 inlägg
#4

Jaså, jag gjorde följande test

create table lennholm(c varchar(5));
insert into lennholm values('ABCD');
insert into lennholm values('DCBA');
SQL>select*from lennholm where 'XXABCDXX' like '%' || c || '%';
C
=====
ABCD

                  1 row found
Medlem sedan dec. 200012 464 inlägg
#5

Vilken DBMS använder du?

Medlem sedan aug. 2004108 inlägg
#6

Jag skapade en rad i tabellen där värdet på kolumnen "meddelande" fick vara 'qwerty', sen skrev jag frågan så som du beskrev:

...where 'sträng' like '%' || meddelande || '%';

Oavsett vad jag använde som "sträng" (tex 'asdf') så returnerades denna rad där meddelande='qwerty' (jag testade inte med fler rader).
Jag tycker det är mycket märkligt, sunt förnuft säger ju att din fråga ska fungera på det sätt jag vill, i detta fall att inte returnera någon rad alls.
Jag använder MySQL 5.0.

Tack för hjälpen!

Medlem sedan dec. 200012 464 inlägg
#7

Det är fel i Mysql. Där betyder || or och inte strängkonkatenering.

where 'sträng' like concat('%',meddelande,'%');
Medlem sedan aug. 2004108 inlägg
#8

Tack så mycket!

319 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
185 ms — hämta tråd, inlägg och bilagor (db)
131 ms — ändringar (db)