2011-12-26 104 views
0

我有一個新聞腳本,它在主頁上按段落分割新聞。我希望用戶輸入一個數字,然後在該段落中刪除新聞。該號碼也存儲在數據庫中。如果第三個參數爲NULL,請不要使用SUBSTRING_INDEX

我當前的代碼:

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

用戶也應該能夠留下領域的空白,以顯示整個文本。問題:仍然只有一個parahraph,因爲NULL + 1 = 1.

有沒有人有更好的方法來做到這一點?

回答

1

這是很好的在你的選擇/更新使用/插入到以下結構:

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

所以在情況下,當newsShortbreaks =null你剛纔的新聞稿。

3

case statement的內部使用SUBSTRING_INDEX,並且只有當某個參數不爲空時才接收子字符串。

喜歡的東西:

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

FROM MyTable 

我只有一個MS SQL Server實例的時刻派上用場,但我相信這個一般方法將在MySQL的。

Here is a MySql-specific example.

+0

爲此+1了,但我會用ravnur的方式,因爲短小。謝謝! – sascha 2011-12-26 09:10:22

相關問題