webForumDet fria alternativet

Case sensitive

2 svar · 235 visningar · startad av Web-Tor

Web-TorMedlem sedan nov. 200013 890 inlägg
#1

Jag har en enkel sökfunktion. Man fyller i ett textfält med sökordet och så har jag detta för att söka igenom databasen:

$result = mysql_query("SELECT * FROM tblnews WHERE colHeading LIKE '%$fltText%' OR colBody LIKE '%$fltText%'");

colHeading är VARCHAR och colBody är BLOB

I båda kolumnerna så finns ordet "Kalle".

Nu till problemet:
Söker jag efter "Kalle" får jag träff i båda kolumnerna.
Men söker jag efter "KALLE" eller "kalle" får jag bara träff i colHeading. :l

Det verkar som att BLOB-fält är skiftlägeskänsliga.
Någon som har en lösning :q

ThACRoWMedlem sedan dec. 2001314 inlägg
#2

Hämtat från MySQL dokumentationen:

The four TEXT types TINYTEXT, TEXT, MEDIUMTEXT, and LONGTEXT correspond to the four BLOB types and have the same maximum lengths and storage requirements. The only difference between BLOB and TEXT types is that sorting and comparison is performed in case-sensitive fashion for BLOB values and case-insensitive fashion for TEXT values. In other words, a TEXT is a case-insensitive BLOB.

spangoMedlem sedan juni 20008 205 inlägg
#3

Om du nu vill göra en skiftlägesokänslig sökning i BLOB-fält kan du ju köra med något sådant här....
SELECT foo FROM bar WHERE UPPER(baz) LIKE '%QUUX%'
eller något. Kanske. :)

130 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)