2011-12-26 1 views
0

メインページの段落でニュースをカットするニューススクリプトがあります。私は、ニュースを削除する段落を入力して、ユーザーに番号を入力してもらいたい。この番号はデータベースにも格納されています。3番目のパラメータがNULLの場合、SUBSTRING_INDEXは使用しないでください。

私の現在のコード:

SUBSTRING_INDEX(newsText, "\n", newsShortbreaks + 1)

また、ユーザーは、そのフィールドを空白のままにすることによって、全体のテキストを表示することができるはずです。問題:NULL + 1 = 1なので、まだパラグラフは1つしかありません。

これを行う方法は誰にもありますか?

答えて

1

それは次のような構造に挿入/あなたの選択/更新に使用するために良いことだ:あなただけnewsTextを得るときnewsShortbreaks =null場合にはそう

if(newsShortbreaks is not null, SUBSTRING_INDEX(newsText, "\n", newsShortbreaks + 1), newsText) 

3

case statementの中にSUBSTRING_INDEXを使用し、一部のパラメータがnullでない場合にのみ部分文字列を取ります。私は、現時点では便利MS SQL Serverのインスタンスを持っていますが、私はこの一般的なアプローチは、MySQLで動作すると信じて

SELECT 
    CASE WHEN @newsShortbreaks IS NOT NULL 
     THEN SUBSTRING_INDEX(newsText, "\n", @newsShortbreaks + 1) 
     ELSE newsText 
    END 

FROM MyTable 

:よう

何か。

Here is a MySql-specific example.

+0

これが+1されましたが、短くて、私はラブナーの方法を使用します。ありがとう! – sascha

関連する問題