max aantal woorden in een zin
Ik wil zinnen afvangen uit een select met max 5 woorden.
Nu denk ik dat dit met substring kan op een spatie maar vraag me af of dit ook anders kan en moet dit dan met substring hoe gaat dat dan precies.
voorbeeld: 'Dit is een test zin die niet meer dan 5 woorden mag hebben'
Deze zin kan dus niet en hoef ik niet te hebben.
maar 'dit is een test' mag wel.
Nu denk ik dat dit met substring kan op een spatie maar vraag me af of dit ook anders kan en moet dit dan met substring hoe gaat dat dan precies.
voorbeeld: 'Dit is een test zin die niet meer dan 5 woorden mag hebben'
Deze zin kan dus niet en hoef ik niet te hebben.
maar 'dit is een test' mag wel.
Gesponsorde koppelingen:
top ga ik mee aan de slag bedankt.
Als je het puur op spaties wilt doen kan het met PHP en met MySQL.
PHP:
MySQL:
[Edit: Typo]
PHP:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
$sql = 'SELECT kolom FROM tabel';
$res = mysql_query($sql);
$aMetMax5 = array();
while($row = mysql_fetch_assoc($res)) {
$aTmp = explode(' ',$row['kolom']);
if(count($aTmp) <= 5) $aMetMax5 = $row['kolom'];
}
var_dump($aMetMax5);
?>
$sql = 'SELECT kolom FROM tabel';
$res = mysql_query($sql);
$aMetMax5 = array();
while($row = mysql_fetch_assoc($res)) {
$aTmp = explode(' ',$row['kolom']);
if(count($aTmp) <= 5) $aMetMax5 = $row['kolom'];
}
var_dump($aMetMax5);
?>
MySQL:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$sql = 'SELECT
LENGTH(kolom) - LENGTH(REPLACE(kolom, ' ', ''))+1 AS aantal_woorden
FROM
tabel
WHERE
LENGTH(cdo_naam) - LENGTH(REPLACE(cdo_naam, ' ', ''))+1 <= 5';
?>
$sql = 'SELECT
LENGTH(kolom) - LENGTH(REPLACE(kolom, ' ', ''))+1 AS aantal_woorden
FROM
tabel
WHERE
LENGTH(cdo_naam) - LENGTH(REPLACE(cdo_naam, ' ', ''))+1 <= 5';
?>
[Edit: Typo]
Gewijzigd op 20/12/2011 11:16:11 door Elwin - Fratsloos



