sql >> Database >  >> RDS >> Mysql

Suggesties voor andere zoekopdrachten voor archaïsche spellingen (bijv. Google's Did You Mean)

Google's "bedoelde je" is behoorlijk interessant:Hoe gebruikt de Google "Bedoelde u?" Algoritme werkt?

In het verleden heb ik iets soortgelijks kunnen implementeren met SOUNDEX die die functionaliteit kan benaderen.

Martin, Martyn en Martine leveren dezelfde output van SOUNDEX .

U kunt alle resultaten van de SOUNDEX . opnemen match, of selecteer de resultaten waar ze om vroegen en select distinct name from table where SOUNDEX(name) = SOUNDEX(search_var) als uw 'suggesties'.

Als optimalisatie kunt u SOUNDEX vooraf berekenen op zoekvelden en dat als een geïndexeerde kolom aanhouden om tabelscans te voorkomen.

Het is niet zo geavanceerd als Did You Mean van Google, maar je kunt heel snel redelijk dichtbij komen.



  1. fout krijgen - SQLSTATE [21000]:kardinaliteitsschending:1241 operand moet 1 kolom(men) bevatten

  2. sql om voor elke maand één record te selecteren met een som van de records van die maand

  3. MySQL datum/auteur vergelijking

  4. Hoe geef ik een []slice door aan een IN-voorwaarde in een voorbereide SQL-instructie met ook niet-IN-voorwaarden?