webForumDet fria alternativet

Plocka enbart de första 100 tecken från en blob-kolumn

Webbutveckling

6 svar · 264 visningar · startad av jme

Medlem sedan maj 20012 237 inlägg
Frågan#1

Hej!

Jag har en blob-kolumn och vid en sökning så vill jag enbart plocka fram, säg, de 100 första tecknen. Finns det nån färdig anrop i MYSql som jag kan använda för detta ändamål?

Jag håller på att skapa en nyhetspanel och den skall visa rubriken samt en del av nyheten. För att reglera inkommande datan så vill jag bara plocka den del som behövs.

Ni förstår säkert... :)

Medlem sedan mars 20032 667 inlägg
#2

LEFT() borde väl vara vad du söker? Vet dock inte om det fungerar på en BLOB.

http://dev.mysql.com/doc/mysql/en/String_functions.html

Medlem sedan aug. 20002 975 inlägg
#3

Borde gå med

SELECT LEFT(kolumn, 100) AS kolumn ...

Men varför använda en BLOB istället för TEXT när det verkar vara text du sparar ?

Medlem sedan maj 20012 237 inlägg
#4

men text lagrar väl högst 255 tecken?

Grejen är ju att nyheten kan mycket väl innehålla mer än 255 tecken men snabböversikten behöver inte mer än 100-200 tecken. Det vore väl onödigt att skapa en översiktskolumn åt varje nyhet? Även om left() kanske snor åt sig lite processor-kraft...

Medlem sedan aug. 20002 975 inlägg
#5

I en VARCHAR kan du lagra max 255 tecken.
I en TEXT kan du lagra max 65535 tecken.

Medlem sedan maj 20012 237 inlägg
#6

ok

ser nu att det verkar stämma; TEXT kan lagra 2^16 - 1 byte data

Så lönar det sig att använda text istället för blob?

Innehållet kommer så att säga enbart att vara text och inget binärt, så som bilder eller liknande).

Medlem sedan aug. 20002 975 inlägg
#7

TEXT är för text, BLOB är för binärt, annars är de ganska så lika.

255 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)