simpel sql vraagje .. select where

Pagina: 1
Acties:
  • 60 views sinds 30-01-2008

  • Amien90
  • Registratie: November 2001
  • Laatst online: 29-07-2021
ik geef het op .. ik moet wat extracten

table : numbers

id text
1 hmmmm
3 hi
5 hallo
7 dit is een test
8 kerstmis

ik heb een string "922740"
sql moet deze string vergelijken met elke 'id' en vervolgens als result geven "dit is een test"

sql "select * from numbers where id LIKE '%$string%'"]??

of toch iets met CONTAINS?

[ Voor 14% gewijzigd door Amien90 op 28-12-2003 04:35 ]


Verwijderd

code:
1
SELECT id,text FROM numbers WHERE id='7'

Verwijderd

Als ik jou was, zou ik eerst alle getallen in de string scheiden door een komma, en dan de volgende query ermee maken:
SQL:
1
SELECT text FROM numbers WHERE id IN (9,2,2,7,4,0)

Wel heb ik nog wat vragen bij dit probleem:
- Is het mogelijk dat er meer dan 1 resultaat weer gegeven moet worden?
- Het is raar dat het getal 2 in deze string 2 keer voor komt. Zou er dan ook, als er een regel met id 2 was geweest, 2 keer de bijbehorende tekst vertoond moeten zijn?
- Is er nog betekenis aan de volgorde, d.w.z.: moeten de resultaten in dezelfde volgorde als de getallen in de string?
- Is het ook mogelijk dat er ID's > 9 zijn? Zo ja, hoe kan je dan dergelijke ID's herkennen in de string?

Kortom, dit kan behoorlijk wat lastiger zijn dan jij nu schets. Misschien als je uitlegt waar je dit voor nodig hebt, an je beter geholpen worden.

HTH :)

  • Amien90
  • Registratie: November 2001
  • Laatst online: 29-07-2021
sorry . ik probeerde met mijn table een voorbeeld te geven .. :*)
komt in feiten hier op neer

ik heb een string "this is a really nice test"

vervolgens moet een tabel met woorden getest worden op deze string:

table : numbers

text1 ------ textnew

hallo ------- hmmmm
echt -------- hi
blabla ------ hallo
tweaker --- dit is een test
this --------- kerstmis

string moet vergelijk worden met text1-tabel .. en moet dus als result geven 'kerstmis'

[ Voor 24% gewijzigd door Amien90 op 28-12-2003 12:51 ]


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 13:28

gorgi_19

Kruimeltjes zijn weer op :9

* gorgi_19 ziet de logica niet? :?

hoe kom je aan kerstmist? Of bedoel je kerstmis? En welke?

[ Voor 12% gewijzigd door gorgi_19 op 28-12-2003 12:41 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Amien90
  • Registratie: November 2001
  • Laatst online: 29-07-2021
typo idd :9

string wordt vergeleken met de woorden in 'text1'. Alleen 'this' zit in de string, dus moet ie als result geven 'kerstmis' of in ieder geval die regel

  • Amien90
  • Registratie: November 2001
  • Laatst online: 29-07-2021
Amien90 schreef op 28 december 2003 @ 12:36:
sorry . ik probeerde met mijn table een voorbeeld te geven .. :*)
komt in feiten hier op neer

ik heb een string "this is a really nice test"

vervolgens moet een tabel met woorden getest worden op deze string:

table : numbers

text1 ------ textnew

hallo ------- hmmmm
echt -------- hi
blabla ------ hallo
tweaker --- dit is een test
this --------- kerstmis

string moet vergelijk worden met 'text1' .. en moet dus als result geven 'kerstmis'

Verwijderd

Feitelijk geldt hier hetzelfde voor. Ipv de nummers moet je dus de string splitsen op spaties, en met IN vergelijken.

Een aantal vragen bijft ook staan.
- Kunnen er meerdere resultaten zijn?
- Zo ja, is de volgorde belangrijk?
- Kan er in text1 meer dan 1 woord staan?

Kortom, je geeft nog niet voldoende informatie. Ook geef je niet aan waarvoor je het wil gebruiken, en zoals je het nu presenteert, klinkt het als een onzin query.

  • Amien90
  • Registratie: November 2001
  • Laatst online: 29-07-2021
- Er mogen meerdere resultaten zijn
- Volgorde is niet van belang
- text1 bestaat uitsluitend uit 1 woord


ok . ff concreet

string = 'Amien!amien@planet.nl'

table = providers

text1 -- text2 -- tel

planet.nl -- Planet Internet -- 07032332332
x4all.nl -- Access for All -- 02034234455
wanadoo.nl -- Wanadoo Internet -- 0503334565

ik heb de eerste entry nodig.. omdat planet.nl in de string zit en de rest van text1 waarden niet. SQL moet dus kijken bij elke waarden van 'text1' of deze in 'string' zit.

[ Voor 28% gewijzigd door Amien90 op 28-12-2003 16:56 ]


Verwijderd

Ah okay. Kijk, dat maakt het al een stuk anders.

Als ik jou was zou ik het domein van je email adres uit de string slopen (met een regexp zoeken naar string die begint met @ en eindigt met spatie, en dan de @ eraf halen), en die met een simpele
SQL:
1
SELECT * FROM providers WHERE text1="planet.nl"
ophalen.

HTH :)

  • Amien90
  • Registratie: November 2001
  • Laatst online: 29-07-2021
domein eruit slopen is geen optie.

amien -- Planet Internet -- 400054

die kan er ook inzitten .. dus hij moet echt checken of ie ergens in de string staat en niet eerst een gedeelte van de string strippen

Verwijderd

Dan is je data model bagger. Een tabel hoort gelijksoortige data te bevatten, en dit lijkt zo meer een algemene verzamelbak van allerlei gegevens.

Mijn advies: ga heel specifiek uitzoeken wat je wil en hoe je dat het beste kan oplossen. Dat zal waarschijnlijk veel veranderingen inhouden. Natuurlijk kan je blijven doormodderen zoals het nu is en een frutsel-oplossing bedenken die net werkt, maar misschien werkt die morgen niet meer. En aan frutseloplossingen doe ik niet ;)

Succes :)

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

Verwijderd schreef op 28 december 2003 @ 17:14:
Dan is je data model bagger. Een tabel hoort gelijksoortige data te bevatten, en dit lijkt zo meer een algemene verzamelbak van allerlei gegevens.

Mijn advies: ga heel specifiek uitzoeken wat je wil en hoe je dat het beste kan oplossen. Dat zal waarschijnlijk veel veranderingen inhouden. Natuurlijk kan je blijven doormodderen zoals het nu is en een frutsel-oplossing bedenken die net werkt, maar misschien werkt die morgen niet meer. En aan frutseloplossingen doe ik niet ;)

Succes :)
* curry684 sluit zich hierbij aan.

Als je hier een topic opent zonder zelf te weten wat je wil en zonder zelfs te vertellen wat je wil kun je moeilijk verwachten dat wij met een werkende oplossing kunnen komen.

Lees voor je volgende topic even P&W FAQ - De "quickstart" goed door, als je je topic volgens die gids opent kunnen we er wsch stukken meer aan vastknopen ;)

Professionele website nodig?

Pagina: 1

Dit topic is gesloten.