[MySQL] Zoeken met Like, welke row?

Pagina: 1
Acties:

  • Mir
  • Registratie: Maart 2001
  • Niet online
Hoi,

ik zoek dmv
code:
1
2
3
4
SELECT * 
FROM Personen 
WHERE Achternaam LIKE '%hen%' OR 
      Voornaam LIKE '%hen%'


naar 'hen' in de kolom Achternaam en Voornaam.

Stel hij vind 1 record; De persoon heeft als achternaam "hendriks".
Nu wil ik weten: uit welke kolom kwam de overeenkomst '%hen%' ??

Je kan inderdaad zelf wel zien dat hij uit Achternaam kwam, maar ik wil dat programatisch kunnen vinden!


Een oplossing die ik in mijn hoofd heb maar me veelste omslachtig lijkt:
Een show maken in MySQL, daarop weer gaan zoeken per kolom .
... zoals je ziet; niet echt netjes en snel!

Wie helpt?

[ Voor 20% gewijzigd door Mir op 15-07-2003 17:30 ]


  • Mir
  • Registratie: Maart 2001
  • Niet online
*woops*

[ Voor 99% gewijzigd door Mir op 15-07-2003 17:21 ]


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Waarom wil je de rowindex weten?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Mir
  • Registratie: Maart 2001
  • Niet online
omdat ik als resultaat wil geven "Uw zoekstring is in 'achternaam' gevonden".
Daar ik de tabelnaam en kolom-namen even heb verzonnen. De werkelijke Dbase is stukken groter.

[ Voor 10% gewijzigd door Mir op 15-07-2003 17:30 ]


  • KnoppenSpook
  • Registratie: Augustus 2000
  • Laatst online: 04-09-2023
met het server side script, kan je toch zelf checken in welk veld de zoekterm gevonden is?

/me weet geen leuke quote voor in zijn signature


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

* ACM heeft een beetje het idee dat ie dubbel ziet ;)

[rml]ACM in "[ MySQL/SQL] Zoeken en sorteren"[/rml]

  • Mir
  • Registratie: Maart 2001
  • Niet online
Dan moet ik dus weer een zoek actie met expressie op mijn resultaten uitvoeren...
Kan dat niet beter?

Want dat is eigenlijk hetzelfde als die SHOW die ik al aangaf, dan ga je wéér zoeken in je zoek-resultaten!... niet iets wat ik wil (als het niet anders kan zal ik wel moeten.... ;) )

  • DeadMetal
  • Registratie: Mei 2002
  • Laatst online: 17:43
Ehm je wilt dus de kolom (voornaam of achternaam) weten, niet de row (tuple).

// edit: TS heeft het aangepast in zijn bericht.

[ Voor 28% gewijzigd door DeadMetal op 15-07-2003 17:32 ]


  • DeverauX
  • Registratie: Februari 2002
  • Niet online

DeverauX

Focus is everything

omdat ik als resultaat wil geven "Uw zoekstring is in 'achternaam' gevonden".
Dan kan je beter gebruik maken van een Fulltext-search.
Zie ook
[rml][ MySQL/SQL] Zoeken en sorteren[/rml]
http://www.mysql.com/doc/en/Fulltext_Search.html

...whatever was distasteful or unpleasant or uncomfortable or painful - music could always soothe that.
All you have to do is reach out to beauty.
Quincy Jones


  • Mir
  • Registratie: Maart 2001
  • Niet online
Top ACM!

zoiets had ik ook in mijn gedachte, alleen geen idee hoe ik het goed/netjes kon uitwerken!

Als er nog meer ideëen zijn... posten! Want wie weet is er nog een betere!


Post van ACM:
SQL:
1
2
3
4
5
6
7
8
SELECT ID, TITLE,
(TITLE LIKE '%zoekterm%') AS foundInTitle,
(KEYWORDS LIKE '%zoekterm%') AS foundInKeywords,
(CONTENT LIKE '%zoekterm%') AS foundInContent
FROM content
WHERE TITLE LIKE '%zoekterm%'
OR KEYWORDS LIKE '%zoekterm%'
OR CONTENT LIKE '%zoekterm%'

  • Coolhva
  • Registratie: Juni 2003
  • Laatst online: 02-08 09:32

Coolhva

Dr. Zero Trust

Ik weet dat je in ASP/MsSQL het RecordSet.filter = "achternaam LIKE %bla%" kan gebruiken maar weet niet of MySQL dat heeft.

Anders zul je toch 2 aparte Query's moeten maken.

  • Mir
  • Registratie: Maart 2001
  • Niet online
Dit ben ik al heel vaak tegen gekomen... Maar wilde het anders proberen op te lossen omdat het niet een zware zoekstring zal worden!

en ja..... ik bedoel kolommen :-/
sorrie!

  • Mir
  • Registratie: Maart 2001
  • Niet online
Aangezien er al een boel oplossingen gegeven zijn die enigsinds kunnen werken (nog niet getest) zal ik ook zeggen dat ik het in samenwerking met PHP doe.

Ik wilde dat eerst niet zeggen omdat je dan vaak ziet dat er oplossingen in PHP gegeven gaan worden, iets wat ik niet wilde!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Coolhva schreef op 15 July 2003 @ 17:29:
Ik weet dat je in ASP/MsSQL het RecordSet.filter = "achternaam LIKE %bla%" kan gebruiken maar weet niet of MySQL dat heeft.

Anders zul je toch 2 aparte Query's moeten maken.
Sommige mensen vergeten nog wel es dat je vrijwel alles wat je bij een query in de where kan gebruiken, je dat ook in de selectgroep, orderby e.a. velden kan gebruiken ;)
En vice versa uiteraard.
Pagina: 1