Case sensitive

PHP

2 svar · 239 visningar · startad av Web-Tor

Medlem sedan nov. 200013 890 inlägg
Trådstart#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

Medlem 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.

Medlem 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. :)

255 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)