[TSQL] Query met zoeken speciale karakters *

Pagina: 1
Acties:
  • 211 views sinds 30-01-2008
  • Reageer

  • -weenie-
  • Registratie: Januari 2005
  • Laatst online: 29-11 22:43
ik heb dus een query

code:
1
SELECT doc_name FROM hlpDocsWords WHERE woord LIKE '%[colspan=3]2%' GROUP BY hlpDocsWords.doc_name;


maar door die [colspan=3] geeft die verkeerde results... hoe kan ik het zo maken, dat die de [] als echte karakters gebruik ? hij implementeerd het nu als statement achtig iets...

mvg
winus

  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 19-10 08:18
volgens mij kan je escapen door die tekens dubbel te doen dus
'%[[colspan=3]]%'

edit:
in de tweede instantie vraag ik me dit af, omdat je het geheel tussen quotes hebt staan, en het dus altijd letterlijk geinterpreteerd zou moeten worden

krijg je nu een foutmelding? of geen goede data terug? welke data krijg je dan terug?

[ Voor 65% gewijzigd door BasieP op 05-07-2007 15:05 ]

This message was sent on 100% recyclable electrons.


  • whoami
  • Registratie: December 2000
  • Laatst online: 00:54
Heb je dat getest, dat dubbel doen ? Dat werkt volgens mij niet.
Waar je eens moet naar kijken is naar het keyword ESCAPE.

bv:
code:
1
2
select * from table1
where naam like '%te#[%' escape '#'

Hiermee geef je aan dat # een escape character is, en het character dat na # komt, letterlijk moet gezocht worden.

[ Voor 43% gewijzigd door whoami op 05-07-2007 15:17 ]

https://fgheysels.github.io/


  • whoami
  • Registratie: December 2000
  • Laatst online: 00:54
Dit heeft trouwens niets met DevTools te maken, maar hoort eerder in PRG thuis
DTE->PRG

https://fgheysels.github.io/


  • -weenie-
  • Registratie: Januari 2005
  • Laatst online: 29-11 22:43
er is 1 record met
woord = [colspan=3]2


ik krijg dit terug

12732)
174[32
187module320
210[width=200]23
77000032
7715991323
7716084326
7716232388
7716232736
7716322998
77320


maar idd met [[ ]] krijg ik wel het goede result

[ Voor 6% gewijzigd door -weenie- op 05-07-2007 15:20 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 00:54
-weenie- schreef op donderdag 05 juli 2007 @ 15:19:

maar idd met [[ ]] krijg ik wel het goede result
Ik heb het net ff geprobeerd met dubbele [ 's , en ik krijg geen goede results terug ...

https://fgheysels.github.io/


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Huh? [[ ]] werkt?

Dit is iig de goede methode:
SQL:
1
2
SELECT * FROM tabel
WHERE veldje LIKE '%\[colspan\]2%' ESCAPE '\'


edit: getest, dat werkt idd :? Nooit geweten.

[ Voor 15% gewijzigd door P_de_B op 05-07-2007 15:29 ]

Oops! Google Chrome could not find www.rijks%20museum.nl


  • whoami
  • Registratie: December 2000
  • Laatst online: 00:54
:?
Op welke versie van SQL Server test je dat met die dubbele [ ?
Bij mij, op Sql Server 2000 werkt dat iig niet .

https://fgheysels.github.io/


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
2000

SQL:
1
2
3
4
5
6
CREATE TABLE #t (veldje varchar(20))

INSERT INTO #t (veldje) VALUES ('[col]2')

SELECT * FROM #t 
WHERE veldje LIKE '%[[col]]2%' 


Of zou Visual Studio daar iets mee doen? Mijn Query Analyzer is stuk, dus ik werk nu voor het eerst met Viusal Studio 2005 op de database.

Oops! Google Chrome could not find www.rijks%20museum.nl


  • -weenie-
  • Registratie: Januari 2005
  • Laatst online: 29-11 22:43
mssql 2005 express :)

  • whoami
  • Registratie: December 2000
  • Laatst online: 00:54
Strange, jouw (P_de_B) testje werkt hier idd op Sql Server 2000.

Hmm, je moet eens dit doen. :P
code:
1
2
3
4
5
6
7
CREATE TABLE #t (veldje varchar(20))

INSERT INTO #t (veldje) VALUES ('[col]2')
INSERT INTO #t (veldje) VALUES ('bliep[ce]')

SELECT * FROM #t 
WHERE veldje LIKE '%[[c%]]%'

https://fgheysels.github.io/


  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 19-10 08:18
ik dacht aan dubbel [ omdat dubbele quote ook werkt om een quote in je tekst te krijgen..

Maar ik heb net getest, en hier werkt het idd ook niet.
* BasieP raad aan om netjes met ESCAPE te werken.

Tenzij (idd P_de_B) het een progsel probleem is en geen DB probleem.

sterker nog, als ik jouw test waardes hier in een DB zet, en voer een query uit met simpel enkele brackets ('%[colspan=3]2%') dan werkt dit gewoon perfect :S

This message was sent on 100% recyclable electrons.


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Vaag verhaal zo.

Oops! Google Chrome could not find www.rijks%20museum.nl


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
P_de_B schreef op donderdag 05 juli 2007 @ 15:37:
2000

SQL:
1
2
3
4
5
6
CREATE TABLE #t (veldje varchar(20))

INSERT INTO #t (veldje) VALUES ('[col]2')

SELECT * FROM #t 
WHERE veldje LIKE '%[[col]]2%' 


Of zou Visual Studio daar iets mee doen? Mijn Query Analyzer is stuk, dus ik werk nu voor het eerst met Viusal Studio 2005 op de database.
Deze werkt bij mij in SQL 2000 én SQL 2005 :?
whoami schreef op donderdag 05 juli 2007 @ 15:49:
Strange, jouw (P_de_B) testje werkt hier idd op Sql Server 2000.

Hmm, je moet eens dit doen. :P
code:
1
2
3
4
5
6
7
CREATE TABLE #t (veldje varchar(20))

INSERT INTO #t (veldje) VALUES ('[col]2')
INSERT INTO #t (veldje) VALUES ('bliep[ce]')

SELECT * FROM #t 
WHERE veldje LIKE '%[[c%]]%'
En deze doet geeft niets in SQL 2000 én SQL 2005 :?
* RobIII ook baffeled is.. Mss iets te maken met de % tussen de brackets?

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • -weenie-
  • Registratie: Januari 2005
  • Laatst online: 29-11 22:43
SQL:
1
2
3
SELECT doc_name FROM hlpDocsWords WHERE 
woord LIKE '%\[c%\]2%' ESCAPE '\' 
GROUP BY hlpDocsWords.doc_name ;

doet die het wel,..met dubbele [[ inderdaad niet

thanks voor de oplossing iig :)

  • whoami
  • Registratie: December 2000
  • Laatst online: 00:54
RobIII schreef op donderdag 05 juli 2007 @ 15:57:
[...]


En deze doet geeft niets in SQL 2000 én SQL 2005 :?
* RobIII ook baffeled is.. Mss iets te maken met de % tussen de brackets?
Dat denk ik ook; % en ] hebben een speciale betekenis in Sql Server, dus wellicht dat ie dan ff de mist in gaat.

https://fgheysels.github.io/


  • Niemand_Anders
  • Registratie: Juli 2006
  • Laatst online: 09-07-2024

Niemand_Anders

Dat was ik niet..

Uit sql books online: Zoek op trefwoord 'like'

Using Wildcard Characters as Literals
You can use the wildcard pattern matching characters as literal characters. To use a wildcard character as a literal character, enclose the wildcard character in brackets. The table shows several examples of using the LIKE keyword and the [ ] wildcard characters.

SymbolMeaning
LIKE '5[%]'5%
LIKE '[_]n'_n
LIKE '[ [ ]'[
LIKE ']']


Ofwel in jouw geval moet like '%[[]colspan=3]2%' werken.

If it isn't broken, fix it until it is..

Pagina: 1