Jeg har nogle problemer med at få grejet denne. Hvordan sammensætter jeg en forespørgelse der henter de rækker med et felt som indeholder en delvis streng af en anden specefik streng?
eg.
table test (test varchar(255))
row1: dette er en test row2: test row3: en test row4: noget andet
Så hvis jeg har en streng med indholdet "en test", så vil jeg have SQL forespørgelsen skal returnere række 1 + 3, men ikke 2 eller 4.
mysql> select * from test; +------------------+ | test | +------------------+ | dette er en test | | test | | en test | | noget andet | +------------------+ 4 rows in set (0.00 sec)
mysql> select * from test where test like "*en test*"; Empty set (0.00 sec)
Hvis jeg har en lang streng, skal jeg have alle de rækker der indgår i denne streng. Ikke alle de rækker som strengen indgår i - som er hvad like "%%" returnere.
Jeg mener. Hele rækken skal indgå i strengen. "dette er en test" går ikke, for "dette er" indgår ikke i "en test". 1) "dette er en test" indgår ikke i "en test": FEJL 2) "test" indgår i "en test": OK 3) "en test" indgår i "en test": OK 4) "noget andet" indgår ikke i "en test" : FEJL
Sådan en har jeg prøvet noget ligende. Af en eller anden grund returnere den helt forkert:
mysql> select * from test where "en test" in (select test from test); +------------------+ | test | +------------------+ | dette er en test | | test | | en test | | noget andet | +------------------+ 4 rows in set (0.00 sec)
mysql> select * from test where test in ("en test"); +---------+ | test | +---------+ | en test | +---------+ 1 row in set (0.00 sec)
mysql> select * from test where %test% in ("en test"); ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '%test% in ("en test")' at line 1
- Den første mangler en række ("test") og den anden fejler.
SELECT * FROM test WHERE 'en test' LIKE concat('%', test, '%')
Synes godt om
Ny brugerNybegynder
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.