webForumDet fria alternativet
Logga in / Bli medlem

Case sensitive

PHP

2 svar · 235 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. :)

254 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)