Postgresql

pgsql 返回以整個單詞結尾的部分文本欄位

  • May 21, 2019

我發現這個 PHP 程式碼返回一個以整個單詞結尾的子字元串(IE 用空格分隔):

if ( strlen( $body ) < $maxlength ) return $body;
$body = substr( $body , 0 , $maxlength );
$rpos = strrpos( $body , ' ' );
if ( $rpos > 0 ) $body = substr( $body , 0 , $rpos );
return $body;

是否可以使用 pgsql 的字元串操作函式來實現相同的結果?

像這樣的東西應該​​可以工作(這裡 15 相當於$maxlength):

SELECT
 CASE WHEN LENGTH(mycolumn) <= 15
      THEN mycolumn
 ELSE SUBSTRING(mycolumn, 0, 15 + 1 -
                POSITION(' ' IN REVERSE(SUBSTRING(mycolumn, 0, 15 + 1))))
 END
 FROM mytable

是一個工作展示。

引用自:https://dba.stackexchange.com/questions/238701